Chciałbym usunąć tag <div class="header"> z dokumentu
Przychodzą i do głowy tylko dwie metody wymienione w temacie.
Jak to zrobić ? Zakładając że powyższy kod jest już w zmiennej $string.
Próbowałem to zrobić przy użyciu takiego regexa: "/<div class="header">(.*?)<\/div>/"
Robionego automatycznie przez metodę:
Niestety to rozwiązanie działa tylko kiedy nie ma dodatkowych tagów wewnątrz usuwanego diva.
<?php public function remove_tag($tag_name, $tag_properties='') { $atrr=''; foreach($tag_properties as $key => $val) { $atrr .= ' '.$key.'="'.$val.'"'; } $regex = "/<$tag_name$atrr>(.*?)</$tag_name>/"; } ?>
Jak to zrobić za pomocą DOMDocument ewentualnie jakie zrobić zapytanie do funkcji preg_replace() ?
edit>
Chciałbym usunąć tag <div class="header"> z dokumentu razem z zawartością
edit>>
Dodałem modyfikator /s na końcu zapytania dzięki czemu zapytanie nie zwraca uwagi na nowe linie.
Teraz mam problem ze znakiem zapytania wewnątrz nawiasów ( po gwiazdce ) wiem że jest to tak zwany znak niezachłanny czyli dzięki niemu zapytanie wytnie ciąg do najbliższego <\/$tag_name> jeśli jednak w divie stosuję inne divy
<div id="to_wycinam"><div class="jakis_tekst"></div><div class="blabla"></div></div<
To znak zapytania spowoduje wycięcie, usunięcie zamiast całej linijki tego tekstu <div id="to_wycinam"><div class="jakis_tekst"></div>. Co zrobić że preg_replace rozpoznawał tą różnice.