Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP] parsowanie kawałka kodu html
kebq
post 23.12.2010, 10:49:16
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.12.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
amii
post 23.12.2010, 12:24:10
Post #2





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


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.



--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
kebq
post 23.12.2010, 12:59:21
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.12.2005

Ostrzeżenie: (0%)
-----


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);


Ten post edytował kebq 23.12.2010, 13:48:31
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 8.07.2025 - 21:07