Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][inne][HTML] Wyrażenie regularne POMOCY
koneser69
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 18.11.2008

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


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


Ten post edytował koneser69 22.11.2009, 20:52:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


[^<]+

P.S. Zwróci, popraw swój błąd.

Ten post edytował fifi209 22.11.2009, 17:34:32
Go to the top of the page
+Quote Post
koneser69
post
Post #3





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 18.11.2008

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


O co Ci chodzi z:
[^<]+
To na pewno niedziała.
Ja musze pobrać wszystko między znacznikami <tr> i </tr>
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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 <
Go to the top of the page
+Quote Post
athei
post
Post #5





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


Kod
preg_match_all("/\<tr \>(.+)\<\/tr\>/sU",$strona,$out);
Go to the top of the page
+Quote Post
koneser69
post
Post #6





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 18.11.2008

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


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 (IMG:style_emoticons/default/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
Go to the top of the page
+Quote Post
Pawel_W
post
Post #7





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


http://pl.wikibooks.org/wiki/PHP/Podstawy_...%84_regularnych
tu masz takie "ogólne" podstawy, ale chyba na początek wystarczą (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 22:34