Может быть, я сидел здесь слишком долго, глядя на это, но ПОЧЕМУ было бы 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 и его окончательно.
Попробуй это:
$query = http_build_query(array('search'=>$as_any, 'location'=>$location)); $url = "http://jobs.github.com/positions.json?" . $query;
Проблема в том, что вы не кодировали URL-адрес поискового термина, который содержит пробел. Запрос возвращал 400 ошибок с сервера, которые вы заметили бы, если бы были включены отчеты об ошибках.
Возможно, вам потребуется включить allow_url_fopen в php.ini
http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen
Из документации:
Этот параметр позволяет оберткам fopen, поддерживающим URL-адреса, разрешать доступ к объектам URL-типа, таким как файлы.
Ваш сервер может препятствовать открытию файла, расположенного по URL-адресу, с помощью file_get_contents.
Вероятно, allow_url_fopen в вашем php.ini: http://php.net/manual/en/filesystem.configuration.php
Нужно разрешаться.
Иногда, если file_get_contents возвращает false (не найден), вы должны увидеть, закодирован ли URL-адрес.
пример:
Должно быть: