Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Curl zwraca pustą tablice
Oczko21
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.07.2009

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


Witam,
Mam taki problem.
Chciałbym pobrać date z innej strony, fragment kodu w którym znajduje się data wygląda tak:
  1. <div id="date">
  2. 11 Kwiecień 2012
  3. </div>

Mój kod:

  1. $curl = curl_init();
  2.  
  3. curl_setopt($curl, CURLOPT_URL, $url);
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5. $strona = curl_exec($curl);
  6. curl_close($curl);
  7. preg_match('/<div id="date"> (.*?) <\/div>/', $strona, $matches);
  8.  
  9. print_r($matches);



I niestety zwraca pustą tablice. Sprawdzałem wyrażenie regularne na generatorze i było wszystko wporządku.

Ten post edytował Oczko21 11.04.2012, 16:04:34
Go to the top of the page
+Quote Post
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


  1. if(curl_exec($curl) === false) {
  2. echo 'Błąd curl ' . curl_error($curl);
  3. }
Go to the top of the page
+Quote Post
Oczko21
post
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.07.2009

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


Cytat(redeemer @ 11.04.2012, 17:07:02 ) *
  1. if(curl_exec($curl) === false) {
  2. echo 'Błąd curl ' . curl_error($curl);
  3. }


Nic nie zwróciło
W zmiennej $strona jest pobrana cała zawartość strony, mogą ją wyświelić, ale jakoś nie mogę jej rozbić na kawałki
Go to the top of the page
+Quote Post
redeemer
post
Post #4





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


Spróbój
  1. preg_match('/<div id="date"> (.*?) <\/div>/s', $strona, $matches);
Go to the top of the page
+Quote Post
Oczko21
post
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.07.2009

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


Cytat(redeemer @ 11.04.2012, 17:14:34 ) *
Spróbój
  1. preg_match('/<div id="date"> (.*?) <\/div>/s', $strona, $matches);

spróbowałem i wywołałem print_r, wynikiem jest dalej pusta tablica:
Go to the top of the page
+Quote Post
redeemer
post
Post #6





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


  1. preg_match('/<div id="date">(.*?)?<\/div>/s', $strona, $matches);
Takie coś musi zadziałać (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Oczko21
post
Post #7





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.07.2009

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


Cytat(redeemer @ 11.04.2012, 17:25:22 ) *
  1. preg_match('/<div id="date">(.*?)?<\/div>/s', $strona, $matches);
Takie coś musi zadziałać (IMG:style_emoticons/default/smile.gif)


Niestety, dalej to samo :/
Jeżeli to jest jakaś różnica to dokładny fragment kodu z datą wygląda tak:
  1. <div id="date"> 11 kwiecień 2012 </div>
Go to the top of the page
+Quote Post
redeemer
post
Post #8





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


zmienna $strona ma zawartość? Bo powinno działać
Go to the top of the page
+Quote Post
Oczko21
post
Post #9





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.07.2009

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


Cytat(redeemer @ 11.04.2012, 17:37:02 ) *
zmienna $strona ma zawartość? Bo powinno działać

Tak, ma zawartość.
Właśnie się z tym uporałem, musiało być coś nie tak z tym wyrażeniem regularnym bo spróbowałem takiego:
  1. preg_match('/<div[^>]+id="date">(.+?)<\/div>/ism', $strona, $matches);

I zadziałało bez zarzutu.
Dzięki za poświęcony czas : )

Przepraszam za podwójny post, ale szkoda zakładać drugi temat a problem poniekąd dotyczy właśnie i tego tematu
Otóż, jak pewnie wyczytaliście z góry, pobieram curlem date z innej strony wszystko ładnie, pięknie tylko pojawia się dziwny znak pomiędzy wyrazami w tym stringu.
Nie widać tego na stronie, a dopiero w bazie danych, wygląda to tak:

11Â kwiecieńÂ 2012


próbowałem użyć str_replace, ale nie pomogło. Czy to wina bazy czy właśnie tego że dane pochodzą z innej strony?

Ten post edytował Oczko21 11.04.2012, 16:39:54
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 - 19:19