Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP - Usunięcie tagu BR wewnątrz tagu UL
Forum PHP.pl > Forum > PHP
Michael2318
Cześć.

Walczę od dłużej chwili z poprawnym utworzeniem funkcji preg_replace, która pomoże mi usunąć wszystkie tagi BR znajdujące się wewnątrz tagu UL, przykład:

Cytat
Test<br>
<ul>
<li>
Test<br>
</li>
</ul>


Gdzie pogrubiony fragment kodu powinien zniknąć.

Stworzyłem coś takiego:

  1. $param_array['description'] = preg_replace('/(?<=<ul>|<\/li>)([\s*<br>\s*|\s*<br\/>\s*|\s*<br \/>\s*]+)(?=<\/ul>|<li>)/is', "$2", $param_array['description']);


niestety kompletnie nie działa. Może ktoś coś podpowiedzieć?

Dzięki.
Neutral
  1. <?php
  2. $tags = "
  3. Test<br>
  4. <ul>
  5. <li>
  6. Test<br><br><br><br>
  7. </li>
  8. <br><br>
  9. </ul>
  10. ";
  11.  
  12. $dom = new DomDocument();
  13.  
  14. $dom->loadHTML($tags);
  15. $list = $dom->getElementsByTagName('br');
  16.  
  17. while($list->length > 0){
  18. $p = $list->item(0);
  19. $p->parentNode->removeChild($p);
  20.  
  21. }
  22.  
  23. echo $dom->saveHTML();
  24. ?>

Source: https://stackoverflow.com/questions/1644535...ags-by-tag-name
(X)HTML'a nie parsujemy REGEX'ami: https://stackoverflow.com/questions/1732348...-contained-tags
Michael2318
@Neutral nie chce pozbywać się wszystkich tagów BR z mojego kodu HTML tylko wybranych (te pomiędzy <ul>TUTAJ NIE CHCE TAGÓW BR</ul> TUTAJ JUŻ CHCE TAGI <br>). Twój kod usuwa wszystkie tagi BR, z całego kodu.
@trueblue to rozwiązanie również nie działa.
viking
To wypadało by kod dostosować do swoich potrzeb.

https://prophp.pl/article/9/phpquery_-_szyb...bienstwo_jquery
trueblue
Działa, ale należy zmienić <br/> na <br> i oczywiście <pre> na <ul>.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.