Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] parsowanie kawałka kodu html
Forum PHP.pl > Forum > Przedszkole
kebq
witam,

mam kawałem kodu html który parsuję:
  1. <!-- some html code here-->
  2.  
  3. <h1>foo</h1>
  4.  
  5. <p>
  6.  
  7. <img src="bla.png">text text</p>
  8.  
  9. <!-- some more html here-->


chciałbym osiągnąć:
  1. <!-- some unchanged html code here-->
  2.  
  3. <img src="bla.png">
  4.  
  5. <h1>foo</h1>
  6.  
  7. <p>text text</p>
  8.  
  9. <!-- some unchanged html code here-->


jestem w stanie "chwycić" <p><img> za pomocą tego wyrażenia regularnego:
  1. #<p\b[^>]*>[\s]*<img[^>]*>#i

jednak nie mam pomysłu jak "przerzucić" tag img ponad h1

BTW gdyby dało się lepiej napisać to wyrażenie regularne to też chętnie posłucham

BTW2 używając preg_match widzę że zwraca znalezisko plus jeszcze dodatkową liczbę, czym ona jest?
po elementach tablicy lecę za pomocą foreach
amii
Spróbuj poczytać o preg_replace_callback, jak dla mnie to wyrażenie powinno mieć nawiasy grupujące i robisz sobie funkcje callback, która zamienia te dopasowania lub obrabia interesujący fragment tekstu.

Cytat
BTW2 używając preg_match widzę że zwraca znalezisko plus jeszcze dodatkową liczbę, czym ona jest?
po elementach tablicy lecę za pomocą foreach


preg_match zwraca Ci kolejne dopasowania z nawiasów cytat z manula:
Cytat
If matches is provided, then it is filled with the results of search. $matches[0] will contain the text that matched the full pattern, $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.

kebq
problem w tym że wcześniej w kodzie znajduje się pusty nagłówek h1 więc go także "łapie"
próbowałem go wykroić za pomocą:
  1. $html = preg_replace("<h1>([\s]*)</h1>", "", $html);

jednak z niewiadomych przyczyn nie łapie tego nagłówka

EDIT:
próbowałem także:
  1. $html = preg_replace("<h1>([\s\t\r\n]*?)</h1>", "", $html);
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.