23

たぶん私はこれをじっと見つめてここに長く座っていたのに、なぜここにfile_get_contents戻るのでしょうfalseか?URLを切り取って貼り付けましたが、正常に機能しますか?

$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;

編集:

私はチェックしましたallow_url_fopen、そしてそれは間違いなくオンです。

4

5 に答える 5

16

これを試して:

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

問題は、スペースを含む検索語をURLエンコードしていないことです。リクエストはサーバーから400エラーを返していました。これは、エラーレポートを有効にしている場合に気づいたことです。

于 2013-02-10T20:27:13.857 に答える
11

php.iniでallow_url_fopenを有効にする必要がある場合があります

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

ドキュメントから:

このオプションは、ファイルのようなURLオブジェクトへのアクセスを可能にするURL対応のfopenラッパーを有効にします。

サーバーが、file_get_contentsを使用してURLにあるファイルを開くことを妨げている可能性があります。

于 2013-02-10T19:59:11.597 に答える
6

おそらくphp.iniのallow_url_fopen:http: //php.net/manual/en/filesystem.configuration.php

許可する必要があります。

于 2013-02-10T20:00:38.517 に答える
4

私の場合、この単純な関数のfile_get_contents()を置き換えます

function get_content($URL){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $URL);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}
于 2021-05-07T12:09:46.470 に答える
1

file_get_contentsがfalse(見つからない)を返す場合は、URLがエンコードされているかどうかを確認する必要があります。

例:

http://test.net/демо/

する必要があります:

https://test.net/%D0%B4%D0%B5%D0%BC%D0%BE/

于 2016-12-09T18:04:29.090 に答える