Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyrażenia regularne - odwieczne problemy!
Martio_L
post 21.01.2006, 21:46:41
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 2.01.2006

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


Mam do Was ogromną prośbę. Nie mogę sobie poradzić z wyrażeniami regularnymi. Dla mnie to jest czarna magia. Szczególnie w połączeniu z preg_match. Mam dwie książki o php za sumę 150 zł i nic tam praktycznego nie ma na ten temat. Przez 2 osatnie godziny szukałem poprzez Google. Nawet manula php jest beznadziejny w tej sprawie sad.gif Wy jesteście moją ostatnią szansą...

Zadanie mojego skryptu:

Poprzez wyszukiwarkę serwisu gry.wp.pl poszukuję gry XXX. Teraz chciałbym z wyników pobrać tablice z linkami w formie $link[url][opis]

Linki wynikowe wyszukiwania mają następujący format:

Kod
<a href="filtr;0,0;x;gra,33,11043,5548838;FIFA_Street_2;core.html" class="tlink" >FIFA Street 2</a>


a więc chciałbym wyciągnąć ten fragment:

Kod
<a href="URL" class="tlink" >OPIS</a>


użyłem do tego coś takiego:

Kod
preg_match('/<a href="(.*?)" class="tlink" >(.*?)<\/a>/', $strona, $wynik);


Jednak zwraca mi same badziewie - stringi o 496 znakach.

Listing całego skryptu:

Kod
$slowo = "fifa";
$wzor_pole = '/<!-- srodkowa kolumna START -->(.*?)<!-- srodkowa kolumna KONIEC -->/';
$wzor_link = '/<a href="(.*?)" class="tlink" >(.*?)<\/a>/';
$url = "http://gry.wp.pl/filtr;0,0;x;szukaj,36,9,$slowo,5548838;core.html";

$zawartosc = file_get_contents($url);
$zawartosc = preg_replace("/\r/", "", $zawartosc);
$zawartosc = preg_replace("/\n/", "", $zawartosc);

preg_match($wzor_pole, $zawartosc, $pole);
preg_match($wzor_link, $pole[0], $wynik);

var_dump($wynik);


Czy ktoś może mi w miarę pilnie pomóc? Już na prawdę nie ma sił dalej walczyć z tymi wyrażeniami regularnymi...
Go to the top of the page
+Quote Post
SongoQ
post 21.01.2006, 22:40:26
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
Mam dwie książki o php za sumę 150 zł

Moze za malo informacji w nich?

Temat kwalifikuje sie do podstaw php


--------------------
Go to the top of the page
+Quote Post
Radarek
post 21.01.2006, 22:51:41
Post #3





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 23.05.2005

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


  1. <?php
  2. $slowo = "fifa";
  3. $wzor_pole = '/<!-- srodkowa kolumna START -->(.*?)<!-- srodkowa kolumna KONIEC -->/';
  4. $wzor_link = '/<a href="([^"]*)" class="tlink" >([^<]*)</a>/';
  5. $url = "http://gry.wp.pl/filtr;0,0;x;szukaj,36,9,$slowo,5548838;core.html";
  6.  
  7. $zawartosc = file_get_contents($url);
  8. $zawartosc = preg_replace("/r/", "", $zawartosc);
  9. $zawartosc = preg_replace("/n/", "", $zawartosc);
  10.  
  11. preg_match($wzor_pole, $zawartosc, $pole);
  12. preg_match_all($wzor_link, $pole[0], $wynik);
  13.  
  14. var_dump($wynik);
  15. ?>


Dam ci wskazowke. Jesli bedziesz kiedys pisal cos z wykorzystaniem regexow to rob to malymi kroczkami, tzn dokladaj do regexa kilka znakow i testuj co lapie. Inaczej ciezko nad tym zapanowac.
Go to the top of the page
+Quote Post
dtb
post 21.01.2006, 23:29:28
Post #4





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

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


  1. <?php
  2. preg_match_all ('#<a href="([^"]+)" class="tlink" >([^<]+)</a>#', $match, $zawartosc_strony_z_wynikami);
  3. ?>


--------------------
Go to the top of the page
+Quote Post
hwao
post 22.01.2006, 09:07:25
Post #5


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




czego jeszcze zadnen mod nie przeniosl tego do opowiedniego miejsca? aarambo.gif
Go to the top of the page
+Quote Post
FiDO
post 22.01.2006, 17:32:16
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Wszyscy spia? smile.gif
Juz przenosze..


--------------------
Brak czasu :/
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: 25.07.2025 - 08:01