2013-02-10 33 views
8

Być może siedziałem tu zbyt długo wpatrując się w to, ale DLACZEGO file_get_contents zwróci false tutaj, wyciąłem i wkleiłem adres URL i działa dobrze?PHP file_get_contents zwraca false

 $url = "http://jobs.github.com/positions.json?search=" . $as_any . "&location=" .  $location; 
    // URL contains http://jobs.github.com/positions.json?search=Project Manager&location=London 
    var_dump($url); 
    $json = file_get_contents($url); 
    var_dump($json); 
    $results = json_decode($json, TRUE); 
    var_dump($results); 
    exit; 

Dzięki

Marc

EDIT:

mam zaznaczone na allow_url_fopen i jego zdecydowanie dalej.

+0

możliwy duplikat [Problem z uzyskaniem zawartości/plików przy użyciu pliku \ _get \ _contents z adresu URL lub Problem w odwrotnym kodowaniu geograficznym] (http://stackoverflow.com/questions/6954220/problem-in-getting-contents-files-using -file-get-content-from-url-or-problem-i) – mario

+0

Żadna z odpowiedzi nie wydaje się dotyczyć tego pytania. – Barmar

Odpowiedz

7

Spróbuj tego:

$query = http_build_query(array('search'=>$as_any, 'location'=>$location)); 
$url = "http://jobs.github.com/positions.json?" . $query; 

Problemem jest to, że nie były URL kodujący wyszukiwany termin, który zawiera spację. Prośba zwróciła błąd 400 z serwera, który zauważyłbyś, gdyby włączono raportowanie błędów.

+0

Krótko mówiąc, kocham cię .. Próbowałem zrobić $ url = urlencode (....), ale to nie działało, jaka jest różnica? –

+1

Spowoduje to zakodowanie wszystkich znaków ogranicznika w adresie URL, dzięki czemu nie zostaną one rozpoznane jako ograniczniki. – Barmar

+0

Mam cię, dzięki za pomoc! –

7

może być konieczne, aby umożliwić allow_url_fopen w php.ini

http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

Z dokumentacji:

Ta opcja umożliwia URL-aware fopen obwolut, które umożliwiają dostępem obiekt URL jak akta.

Twój serwer może uniemożliwiać otwarcie pliku znajdującego się pod adresem URL za pomocą file_get_contents.

+0

Obecnie /etc/php.ini ma allow_url_fopen = Na –

+0

jeśli file_get_contents() zwróci wartość false, to nie może odczytać pliku. Jeśli wartość jest równa NULL, sama funkcja jest wyłączona. –

Powiązane problemy