Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrażenie regularne - kilka prostych linijek
Forum PHP.pl > Forum > PHP
kreteda
Mam problem, posiadam kod pewnej stronki i potrzebuję spisać z niej tabelkę rozmiarów. Dobrze było by jak by było aby zrobić to za pomocą Curl'a.

wyrażenie regularne powinno być podobne do tego:
Kod
/<td valign="top">
(.*)
<br>
<\/td>
<td valign="top">(.*)<\/td>/

i jak sprawdzam w http://www.spaweditor.com/scripts/regex/index.php to działa poprawnie.

problem jest w tym, że gdy wrzucę kod na stronkę, to zwraca pustą tablice (nie wykrywa kilku linii wyrażenia)

kod w pehapie wrzucam mniej wiecej taki

Kod
preg_match_all('/<tr bgcolor="(.*?)">
<td valign="top">
(.*)
<br>
<\/td>
<td valign="top">(.*)<\/td>
<\/tr>/', $content, $rozmiary, PREG_SET_ORDER);
        foreach ($rozmiary as $val)
             {
             echo "".$val[1]."<br />";
             echo "".$val[2]."<br />";
             }



a tu fragment źródła z którego ma pobierać:

Kod
<tbody><tr bgcolor="#eeeeee">
<td valign="top">
------>S <------
<br>
</td>
<td valign="top">------>1 left <------</td>
</tr>
<tr><td colspan="2"><div style="margin-top: 5px"></div></td></tr>
<tr bgcolor="#d0d0d0">
<td valign="top">
------> M  <------
<br>
</td>
<td valign="top">------> In Stock <------</td>
</tr>
<tr><td colspan="2"><div style="margin-top: 5px"></div></td></tr>
<tr bgcolor="#eeeeee">

itd...


jakieś pomysły?
BaN
sprawdź:
  1. $pattern = '/<tr.*?>.*?<td valign="top">[\r\n]*(.*?)<br>.*?<\/td>.*?<td.*?>(.*?)<\/td>.*?<\/tr>/ms';
kreteda
to nie zatrybi, nawet sprawdziłem ale to wiadome było, bo zamykasz php " ?> " a potem nie jest otwierany na nowo.
Crozin
1. Wyrażenia regularne nie nadają się do parsowania sporych fragmentów HTML-a!
2. "?>" wewnątrz ciągu nie jest traktowane jako zamknięcie bloku kodu PHP - te znaki nie mają żadnego znaczenia.
acidm
a w jaki sposób można parsować spory kawałek html/xhtml/html5 w php w elegancki sposób ?
adbacz
http://php.net/manual/en/book.dom.php
acidm
Dzięki, już czytam smile.gif
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.