У меня есть следующий код:
<?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
Попробуйте кодировать ваш url с помощью urlencode
:
$url = 'http://www.omdbapi.com/?t='.urlencode('the dark night');
echo '<pre>';
print_r(file_get_contents($url));
echo '</pre>';
Документация 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');
%20
в вашем URL.