PHP CURL没有打开网址

时间:2014-04-05 04:22:25

标签: php curl

这是我的代码

使用我上面的示例输出文件" index.php"如果它确实存在,则在url网站上不存在,在我看来curl试图在其自己的文件不存在的网站上打开该文件。 我希望这是有道理的。 这是系统在尝试访问网站时写入url.txt文件的内容

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>

3 个答案:

答案 0 :(得分:4)

我刚用Google测试了这个,这是url.txt(空白和所有)的输出:

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.

</BODY></HTML>


url = http://google.com/

我使用您提供的网址对其进行了测试,似乎响应为我们提供了302:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://redirect.main-hosting.com/error404.php/24?domain=earnigc.com">here</a>.</p>
</body></html>

url = http://earnigc.com/index.php?sid=1

因此,我将查看服务器端代码(无论循环/函数正在检查$_GET['sid']的值),看看那里出了什么问题。如果您经常遇到错误,可能会阻止您的IP地址。

为了清楚起见 - cURL按预期工作,这是服务器方面的问题。

修改

根据您提供的更多信息(网址实际为http://highestpaygpt.com/tools/pts/61_4f363ad4359302e.php?sid=ccarson030308_cc8‌e4499&earned=20&status=1),我得到的回复如下:

You do not have authorization to access this page.
url = http://highestpaygpt.com/tools/pts/61_4f363ad4359302e.php?sid=ccarson030308_cc8‌e4499&earned=20&status=1

因此,cURL正如预期的那样工作,这是您的授权。考虑在服务器上使用带有cURL和/或身份验证方法的cookie。

等一下......

您似乎正在编写一个自动cURL脚本以欺诈方式进入竞赛(并且违反该网站的条款和条件)。

答案 1 :(得分:3)

首先,为了确保,请尝试添加

 curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$verbose = fopen('php://temp', 'rw+');
curl_setopt($ch, CURLOPT_STDERR, $verbose);

现在,在你的卷曲执行官之后,执行以下操作并返回结果。

rewind($verbose);
$vblog = stream_get_contents($verbose);

echo "<pre>", htmlspecialchars($vblog), "</pre>\n";

答案 2 :(得分:0)

请尝试使用以下基本功能,并检查curl_error&amp ;; curl_exec()返回true或不返回:

        // create a new cURL resource
        $ch = curl_init();

        // set URL and other appropriate options
        curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
        curl_setopt($ch, CURLOPT_HEADER, 0);

        // grab URL and pass it to the browser
        curl_exec($ch);
        if(curl_exec($ch) === false)
        {
            echo 'Curl error: ' . curl_error($ch);
        }
        else
        {
            echo 'Operation completed without any errors';
        }
        // close cURL resource, and free up system resources
        curl_close($ch);