Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][cURL]preg_match_all i google
NeRoK
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 29.04.2006

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


Witam,

Mam taki kod:
  1. <?php
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_HEADER, false);
  4. curl_setopt($ch, CURLOPT_HTTPGET, true);
  5. curl_setopt($ch, CURLOPT_POST, false);
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  7.  
  8. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1");
  9. $strona = curl_exec($ch);
  10. curl_close($ch);
  11.  
  12. preg_match_all('@<h3 class=r><a href="(.*)" class=l>(.*)</a></h3>(.*)<div class="s">(.*)<br><cite>@iU', $strona, $wynik);
  13. print_r($wynik);
  14. ?>


Niestety w tablicy nie mam żadnych wyników... Podejrzewam, że "coś jest źle" z wyrażeniem regularnym. Jak mogę poprawić to wyrażenie, żeby działało jak należy?
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Kod
preg_match_all('@<h3 class=r><a href="(.*)" class=l>(.*)</a></h3>(.*)<div class="s">(.*)<br><cite>@iUs', $strona, $wynik);

Dodać modyfikator s

Po drugie gdzie ty masz w curlu ustawiony URL jaki ma byc wczytany?

Ten post edytował wookieb 4.02.2009, 16:17:52
Go to the top of the page
+Quote Post
NeRoK
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 29.04.2006

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


Tak, tak. URL Jest oczywiście wczytany, ale wsadzanie go tutaj nie było istotne, bo na 100% jest dobry.
Niestety, bo dodaniu modyfikatora nadal nie zwraca poprawnych wyników... Właściwie nie zwraca nic...
  1. <?php
  2. Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) [3] => Array ( ) [4] => Array ( ) )
  3. ?>

URL wygląda tak:
  1. <?php
  2. $url = 'http://www.google.pl/search?hl=pl&chs=wui&q='.urlencode($query);
  3. ?>


Ten post edytował NeRoK 4.02.2009, 16:25:49
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. <?php
  2. preg_match_all('/<h3 class=r><a href="(.*?)" class=l(?:.*?)>(.*?)</a></h3>(.*?)<div class="s">(.*?)<br><cite>/is', $strona, $wynik);
  3. ?>
Go to the top of the page
+Quote Post
NeRoK
post
Post #5





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 29.04.2006

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


Niestety, nadal nie zwraca wyników... może coś źle z curlem?
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Wyrażenie na 100% działa bo sprawdzałem. Sprawdź zawartość $strona.
Go to the top of the page
+Quote Post
NeRoK
post
Post #7





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 29.04.2006

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


$strona jest... puste? (IMG:http://forum.php.pl/style_emoticons/default/ohmy.gif)
Tylko teraz dlaczego nie czyta wyników z google?
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Pokaż cały kod od inicjacji curla aż do parsowania danych
Go to the top of the page
+Quote Post
NeRoK
post
Post #9





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 29.04.2006

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


  1. <?php
  2. $url = 'http://www.google.pl/search?hl=pl&chs=wui&q='.urlencode($zapytanie);
  3.    
  4.    
  5.    #CURL START
  6.    $ch = curl_init();
  7.    curl_setopt($ch, CURLOPT_HEADER, false);
  8.    curl_setopt($ch, CURLOPT_HTTPGET, true);
  9.    curl_setopt($ch, CURLOPT_POST, false);
  10.    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  11.    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1");
  12.    $strona = curl_exec($ch);
  13.    curl_close($ch);
  14.    echo $strona;
  15.    #CURL END
  16.    preg_match_all('/<h3 class=r><a href="(.*?)" class=l(?:.*?)>(.*?)</a></h3>(.*?)<div class="s">(.*?)<br><cite>/is', $strona, $wynik);
  17.    print_r($wynik);
  18. ?>


$zapytanie = $_REQUEST['zapytanie']; z pliku szukaj.php

Ten post edytował NeRoK 4.02.2009, 16:55:29
Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Pytaj się takiego
Cytat
Po drugie gdzie ty masz w curlu ustawiony URL jaki ma byc wczytany?

...
Kod
$ch = curl_init($url);

albo
Kod
curl_setopt($ch, CURLOPT_URL, $url);


Ten post edytował wookieb 4.02.2009, 16:54:03
Go to the top of the page
+Quote Post
NeRoK
post
Post #11





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 29.04.2006

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


A teraz to mi wstyd...
Serdecznie dzięki za pomoc
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: 27.08.2025 - 20:35