<?php
declare(strict_types=1);
namespace Croisiland\CommonBundle\Helper;
use DOMDocument;
class DomDocumentHelper
{
/**
* Transforme une chaƮne HTML de liste (<ul><li>...</li></ul>) en tableau PHP.
*/
public function parseHtmlListToArray(?string $htmlList): array
{
if (empty($htmlList)) {
return [];
}
$dom = new DOMDocument();
$dom->loadHTML(
mb_convert_encoding($htmlList, 'HTML-ENTITIES', 'UTF-8'),
LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD | LIBXML_NOERROR | LIBXML_NOWARNING
);
$listItems = $dom->getElementsByTagName('li');
$result = [];
foreach ($listItems as $item) {
$text = trim($item->nodeValue);
if (!empty($text)) {
$result[] = $text;
}
}
return $result;
}
}