php curl代码虽然脚本没有在特定网站上运行

时间:2015-12-10 12:51:13

标签: php curl

我创建了这段代码:

<?php
    $requesturl = "https://www.google.com/?gws_rd=ssl";
    $ch = curl_init($requesturl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    echo curl_exec($ch);
    curl_close($ch);
?>

大约一个月前,我创建了这个脚本它运行良好,但现在它在许多网站上工作正常,但它不适用于谷歌甚至youtube(通过&#34;不工作&#34;我的意思是它在装载时保持库存,即圆圈旋转而没有任何事情发生。) 我可以从我的浏览器访问这两个没有任何问题!

我想出了这个问题可以追溯到卷曲的想法 我将glype(代理脚本)复制到EasyPHP目录(用于本地托管),然后将https://www.google.com/?gws_rd=ssl放入框中并按Enter键。我看到它正在工作,所以卷曲没有问题。

在此之后,我认为问题来自我的代码 所以我决定在互联网上的真实主机上测试它,我有趣地看到我的代码工作正常!它回复google.com到浏览器。

现在我没有想法..我甚至清除了dns缓存,但没有帮助 我该怎么办?

1 个答案:

答案 0 :(得分:0)

你可以/应该测试一些东西 我从基本的tcp连接开始:如果你可以使用sockets extension,你可以试试

<?php
$host = 'www.google.com';

echo "<p>gethostbyname</p>\r\n"; flush();
$addr = gethostbyname($host);
if ( $addr===$host ) {
    die('could not resolve host');
}

echo "<p>socket_create</p>\r\n"; flush();
$socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ( !$socket ) {
    die('could not create socket');
}

echo "<p>socket_connect</p>\r\n"; flush();
if ( !socket_connect($socket, $addr, 443) ) {
    die('could not coennect socket');
}
echo 'Done.';

检查是否可以解析主机名并建立连接。