Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][inne][HTML] Wyrażenie regularne POMOCY
Forum PHP.pl > Forum > Przedszkole
koneser69
witam

Jak za pomocą wyrażenia regularnego pobrać ze strony to co jest między tagami <tr></tr>
Przedstawiony poniżej kod pobiera ze strony tag <tr> i wszystko co jest po nim aż do literki z ([^z]).
Nie wiem czego użyć zamiast [^z] aby pobrało aż do tagu </tr>

  1. $strona = file_get_contents("http://suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true&editSearch=&scopeId=C&lang=de&export=NO_EXPORT&sortOption.sortOrder=ASCENDING&damageUnrepaired=NO_DAMAGE_UNREPAIRED&sortOption.sortBy=price.consumerGrossEuro&makeModelVariant1.makeId=900&makeModelVariant1.modelId=&maxPrice=&minFirstRegistrationDate=&maxMileage=&fuel=&ambitCountry=&zipcode=");
  2. $ile = preg_match_all("|<tr.*>(\s([^z])+)*|",$strona,$out);
  3. print_r($out[0]);
  4. echo "\n\n$ile\n";


Kod ten zwróci min.

  1. [21] => <tr >
  2. <td class="empty-cell-left"> </td>
  3. <td class="image">
  4.  
  5.  
  6. <div class="car-pic" >
  7. <a href="http://suchen.mobile.de/fahr
Fifi209
[^<]+

P.S. Zwróci, popraw swój błąd.
koneser69
O co Ci chodzi z:
[^<]+
To na pewno niedziała.
Ja musze pobrać wszystko między znacznikami <tr> i </tr>
Fifi209
Tabela służy do prezentacji danych, tak więc założyłem, że nie może być tam żadnego znacznika html.

[^<]+
taki zapis oznacza wszelkie znaki prócz <
athei
Kod
preg_match_all("/\<tr \>(.+)\<\/tr\>/sU",$strona,$out);
koneser69
Wielkie dzięki athei. Dokładnie o to mi chodziło.
Masz może jakiś dobry tutorial na temat wyrażeń regularnych.
Przeanalizujmy twój kod

  1. preg_match_all("/\<tr \>(.+)\<\/tr\>/sU",$strona,$out);


jaka jest różnica między preg_match_all("//",$strona,$out); a np preg_match_all("||",$strona,$out); Chodzi mi o zapis wyrażenia regularnego ty zapisałeś je pomiędzy dwoma znakami /. Ja pomiędzy dwoma znakami |. Widziałem również zapis między dwoma @ i chyba nawet dwoma #.

Widze że zanegowałeś < i > tzn że to są znaki specjalne questionmark.gif
Tych cegiełek czyli brania w nawias okrągły też go końca nie kumam.
I chyba najważniejsze na samym końcu wyrażenia dodałeś /sU. Mógłbyś wyjaśnić ten zapis.

Pozdrawiam
Pawel_W
http://pl.wikibooks.org/wiki/PHP/Podstawy_...%84_regularnych
tu masz takie "ogólne" podstawy, ale chyba na początek wystarczą winksmiley.jpg
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.