vendor/croisiland/common-bundle/src/Helper/DomDocumentHelper.php line 14

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Croisiland\CommonBundle\Helper;
  4. use DOMDocument;
  5. class DomDocumentHelper
  6. {
  7. /**
  8. * Transforme une chaƮne HTML de liste (<ul><li>...</li></ul>) en tableau PHP.
  9. */
  10. public function parseHtmlListToArray(?string $htmlList): array
  11. {
  12. if (empty($htmlList)) {
  13. return [];
  14. }
  15. $dom = new DOMDocument();
  16. $dom->loadHTML(
  17. mb_convert_encoding($htmlList, 'HTML-ENTITIES', 'UTF-8'),
  18. LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD | LIBXML_NOERROR | LIBXML_NOWARNING
  19. );
  20. $listItems = $dom->getElementsByTagName('li');
  21. $result = [];
  22. foreach ($listItems as $item) {
  23. $text = trim($item->nodeValue);
  24. if (!empty($text)) {
  25. $result[] = $text;
  26. }
  27. }
  28. return $result;
  29. }
  30. }