cURL和file_get_contents都无法加载某些网页

时间:2019-05-10 22:10:24

标签: php php-curl

我正在运行IIS 8 / PHP Web服务器,并试图编写一个所谓的“代理脚本”,作为获取HTTP内容并将其加载到HTTPS页面上的一种方式。

尽管该脚本在某些情况下(例如Google.com,Amazon.com等)确实能够成功运行(输出HTTP页面发送的任何内容),但在获取我自己的网站和其他一些网站时不起作用。 / p>

这是proxy.php的代码:

<?php
$url = $_GET['url'];

echo "FETCHING URL<br/>";      // displays this no matter what URL I enter 
$ctx_array = array('http' =>
    array(
        'method' => 'GET',
        'timeout' => 10,
    )
);
$ctx = stream_context_create($ctx_array);
$output = file_get_contents($url, false, $output);  // times out for certain requests
echo $output;

当我将$_GET['url']设置为http://www.ucomc.net时,脚本失败。对于大多数其他URL,它可以正常工作。

我在这里和其他地方都检查了其他答案,但是都没有描述我的问题,也没有提供解决方案。

我已经看到了一些涉及更改用户代理的类似问题的建议,但是当我这样做时,它不仅不能解决现有问题,而且还可以防止其他站点加载。我不想依靠第三方代理(不信任免费代理/不想处理其查询限制,也不想为昂贵的代理付费)

1 个答案:

答案 0 :(得分:0)

原来这只是防火墙的问题。在PHP沙箱上对其进行测试可以正常工作,因此我只需要修改服务器防火墙中的传出连接设置即可允许请求通过。