php: file_get_contents (url) не удалось открыть поток при вызове страницы с откликом json

1

У меня есть следующий код:

<?php
//first try
$url = 'http://www.omdbapi.com';
echo '<pre>';
print_r(file_get_contents($url));
echo '</pre>';


//second try
$url = 'http://www.omdbapi.com/?t=the dark night';
echo '<pre>';
print_r(file_get_contents($url));
echo '</pre>';
?>

Первая попытка работает отлично. Тем не менее, вторая попытка дает следующее сообщение об ошибке с более подробной информацией: $file_get_contents(http://www.omdbapi.com/?t=the dark night): failed to open stream: HTTP request failed!

Обратите внимание, что у pc есть окна 8.1 x64, я пробовал как wamp-сервер, так и xampp. Я действительно удостоверился, что оба файла $php.ini включили оба расширения $extension=php_openssl.dll и $extension=php_curl.dll

  • 1
    Попробуйте заменить пробелы на %20 в вашем URL.
Теги:
codeigniter

2 ответа

1
Лучший ответ

Попробуйте кодировать ваш url с помощью urlencode:

$url = 'http://www.omdbapi.com/?t='.urlencode('the dark night');
echo '<pre>';
print_r(file_get_contents($url));
echo '</pre>';
3

Документация file_get_contents говорит

Примечание. Если вы открываете URI со специальными символами, например пробелами, вам необходимо закодировать URI с помощью urlencode().

Поэтому замените

$url = 'http://www.omdbapi.com/?t=the dark night';

с

$url = 'http://www.omdbapi.com/?t='.urlencode('the dark night');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню