Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] file_get_contents Warning
-Addd-
post
Post #1





Goście







Pobieram sobie przykładową stronę za pomocą:

$content = file_get_contents('http://www.onet.pl')

i gdyby powyższa strona nie działała to wyskakuje błąd "Warning: file_get_contents(http://www.onet.pl)..."

Jaka funkcja spowoduje ze jak nie połączy z tą stroną to zamiast błędu wyskoczy moja informacja typu echo 'nie dziala'; ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


  1. if ( !($content = @file_get_contents('http://www.onet.pl')) )
  2. {
  3. echo 'nie działa';
  4. }
  5. else
  6. {
  7. echo $content;
  8. }
Go to the top of the page
+Quote Post
-Addd-
post
Post #3





Goście







Dałem @ przed file_get_contents

$content = @file_get_contents('http://www.onet.pl')

i również działa, ale czy jest to prawidłowe rozwiązanie?
Go to the top of the page
+Quote Post
!*!
post
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Nie, ponieważ wyciszasz błąd, a nie go rozwiązujesz. @ w kodzie się nie używa.

Sprawdź pierw jakie nagłówki odbiera strona i czy w ogóle przez get_headers jak będzie 200 to ok, odczytujesz źródło.
Go to the top of the page
+Quote Post
-Addd-
post
Post #5





Goście







Dzięki wielkie za wyjaśnienie (IMG:style_emoticons/default/smile.gif)

To jeszcze jedna sprawa dotycząca file_get_contents

Mam kod

  1. <?php
  2. $url = 'www.onet.pl';
  3. function pobierzFacebook($url)
  4. {
  5. $facebook = file_get_contents('http://www.facebook.com/plugins/like.php?layout=button_count&href=' . urlencode($url));
  6. }
  7. echo pobierzFacebook($url);
  8. ?>


Powyższy skrypt nie wyświetla nić, a adres http://www.facebook.com/plugins/like.php?l...ref=www.onet.pl działa prawidłowo, dlaczego wiec nie pobiera mi tej stron?
Go to the top of the page
+Quote Post
b4x
post
Post #6





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


  1. function pobierzFacebook($url)
  2. {
  3. $ch = curl_init();
  4. curl_setopt_array($ch, [
  5. CURLOPT_USERAGENT => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:20.0) Gecko/20100101 Firefox/20.0',
  6. CURLOPT_RETURNTRANSFER => TRUE,
  7. CURLOPT_URL => 'http://www.facebook.com/plugins/like.php?layout=button_count&href='. urlencode($url)
  8. ]);
  9.  
  10. $response = curl_exec($ch);
  11. curl_close($ch);
  12. return $response;
  13. }
  14. var_dump(pobierzFacebook('http://www.wp.pl'));


Facebook chyba sprawdza user-agenta, z tego co zobaczyłem.

Ten post edytował b4x 21.04.2013, 10:24:09
Go to the top of the page
+Quote Post
-Addd-
post
Post #7





Goście







Dzięki działa, jeszcze mała prośba przy niedzieli (IMG:style_emoticons/default/smile.gif)

  1. $pobranastrona = pobierzFacebook($url);
  2.  
  3. preg_match_all("/\<span class=\"pluginCountTextDisconnected\"\>(.+?)\<\/span\>/",$pobrana,$ile);
  4. return $ile[1];
  5.  
  6. foreach($ile as $lajki)
  7. {
  8. echo $lajki;
  9. }


Powyższym skryptem chce pobrać tylko ilość lajków (samą liczbę), ale nie wyświetla się nic, gdzie jest błąd?
Go to the top of the page
+Quote Post
-Addd-
post
Post #8





Goście







oczywiscie w preg_match_all ma być $pobranastrona a nie $pobrana (więc to nie ten błąd) (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@!*!: Nic nie stoi na przeszkodzie by pomiędzy wywołaniem get_headers(), a file_get_contents() strona/łącze padło i pojawił się Warning. Tutaj należałoby skorzystać z cURLa, który pozwala na w miarę normalną obsługę błędów.
@-Addd-: Zdajesz sobie sprawę z tego, że Facebook udostępnia w swoim API normalny sposób na pobranie liczby polubień danej strony?
Go to the top of the page
+Quote Post
-Addd-
post
Post #10





Goście







o API wiem, ale chce to zrobić po swojemu i przy okazji się czegoś nauczyć.
Go to the top of the page
+Quote Post
Crozin
post
Post #11





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Naucz się najważniejszej rzeczy, tj. korzystania z gotowych rozwiązań. Zresztą już to robisz, bo nie widzę byś pytał się o to jak napisać własną funkcję file_get_contents() czy preg_match_all() - o PHP samym w sobie nie wspominając.
Go to the top of the page
+Quote Post
b4x
post
Post #12





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


  1. $pobranastrona = pobierzFacebook($url);
  2.  
  3. preg_match_all('/<span class="pluginCountTextDisconnected">(.+?)<\/span>/is', $pobranastrona, $ile);
  4.  
  5. foreach($ile[1] as $lajki)
  6. {
  7. echo $lajki;
  8. }


Powinno działać.
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: 23.12.2025 - 22:25