Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MAMP php 5.6.2文件\u获取\u内容不工作(超时)_Php_Mamp - Fatal编程技术网

MAMP php 5.6.2文件\u获取\u内容不工作(超时)

MAMP php 5.6.2文件\u获取\u内容不工作(超时),php,mamp,Php,Mamp,我已经搜索过了,但找不到这不起作用的原因。我尝试过从命令行和apache执行,但都不起作用 <?php echo file_get_contents("http://google.com"); ?> PHP版本: PHP 5.6.2(cli)(构建时间:2014年10月20日16:21:27) 奇怪的是,如果我使用/usr/bin/php,它就可以正常工作。(内置苹果版) 以下是线鲨的捕获: 我建议您使用卷发替代品: function file_get_contents_curl(

我已经搜索过了,但找不到这不起作用的原因。我尝试过从命令行和apache执行,但都不起作用

<?php
echo file_get_contents("http://google.com");
?>
PHP版本: PHP 5.6.2(cli)(构建时间:2014年10月20日16:21:27)

奇怪的是,如果我使用/usr/bin/php,它就可以正常工作。(内置苹果版)

以下是线鲨的捕获:

我建议您使用卷发替代品:

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
文件)。

您是否激活了防火墙?我已尝试禁用防火墙,但仍然会发生这种情况。真正奇怪的是,我在另一个网络上试用过,效果很好。我只是不明白/usr/bin/php如何在这两个网络上工作;但是MAMP php在这个网络上不起作用,Curl也不起作用。为了清楚起见,我贴了一个简单的例子。这是一个与网络相关的问题。你知道如何在你的网络内外追踪数据包吗?我不知道如何追踪数据包。你能就如何做到这一点给出答案吗?我只是觉得很奇怪,苹果提供的php工作得很好;但是MAMP php其实并不那么复杂,也很有趣,只要下载并在youtube上寻找一段关于如何跟踪http相关包的视频,我就添加了wireshark捕获。看起来有很多重传尝试,如我的帖子中所述
allow\u url\u fopen=On
allow_url_fopen = On
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;
}