Я искал и не могу найти причину, почему это не работает. Я попытался выполнить из командной строки, а также Apache, и это не работает.
<?php
echo file_get_contents("http://google.com");
?>
У меня есть простой скрипт php, как показано выше, который просто делает запрос в Google и выводит содержимое.
Ошибка:
Warning: file_get_contents(http://google.com): failed to open stream: Operation timed out in /Applications/MAMP/htdocs/p.php on line 2
Версия PHP:
PHP 5.6.2 (cli) (сборка: 20 октября 2014 16:21:27)
allow_url_fopen = On
Странная часть, если я использую / usr / bin / php, он работает нормально. (Встроенный в яблочную версию)
Вот захват проволочной акулы:
https://www.dropbox.com/s/u7jdg494fmud22i/packet_capture_php_network.pcapng?dl=0
Я предлагаю вам использовать альтернативу CURL:
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
Ваш сервер Apache может иметь ограничения на это. Проверьте это сообщение какие детали исправить. Должно быть просто изменение конфигурации в вашем php.ini
файл (убедитесь, что вы изменили MAMP PHP php.ini
файл).