2016-02-03 9 views
5

Jak wspomniano powyżej, file_get_contents() w PHP funkcji czy nawet fopen()/fread() stucks kombinowane i czasy, kiedy próbuje odczytać ten prosty obraz URL:file_get_contents() w PHP utknąć w załadowaniu obrazu

http://pics.redblue.de/artikelid/GR/1140436/fee_786_587_png 

ale ten sam obraz jest łatwo ładowany przez przeglądarki, jaki jest haczyk?

edycja:

na żądanie w komentarzach, ja pokazuję funkcję użyłem, aby uzyskać dane:

function customRead($url) 
{ 
    $contents = ''; 

    $handle = fopen($url, "rb"); 

    $dex = 0; 

    while (!feof($handle)) 
    { 
     if ($dex++ > 100) 
      break; 

     $contents .= fread($handle, 2048); 
    } 

    fclose($handle); 

    echo "\nbreaking due to too many calls...\n"; 

    return $contents; 
} 

Próbowałem też po prostu tak:

echo file_get_contents('http://pics.redblue.de/artikelid/GR/1140436/fee_786_587_png'); 

Zarówno Podaj ten sam numer:

edycja:

Jak sugeruje w komentarzu użyłem Zwijanie:

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11'); 
    $res = curl_exec($ch); 
    $rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    curl_close($ch) ; 
    echo "\n\n\n[DATA:"; 
    echo $res; 
    echo "]\n\n\n[CODE:"; 
    print_r($rescode); 
    echo "]\n\n\n[ERROR:"; 
    echo curl_error($ch); 
    echo "]\n\n\n"; 

To jest wynik:

[DATA:] 

[CODE:0] 

[ERROR:] 
+0

Czy to fee_786_587_png czy fee_786_587.png? –

+0

Zamieść kod, który wypróbowałeś. –

+0

to _png, dokładnie tak, jak wspomniano w url –

Odpowiedz

1

Jeśli nie uzyskać dane ze zdalnego file_get_contents, można spróbować to z cURL, ponieważ może dostarczyć komunikaty o błędach na curl_error. Jeśli nic nie dostaniesz, nawet bez błędu, to coś na twoim serwerze blokuje połączenia wychodzące. Może nawet chcesz spróbować curl przez SSH. Nie jestem pewien, czy to ma jakieś znaczenie, ale warto spróbować. Jeśli nic nie dostaniesz, możesz rozważyć skontaktowanie się z administratorem serwera (jeśli tak nie jest) lub dostawcą.

Powiązane problemy