尝试访问本地文件时会导致curl返回false的原因是什么?

cod*_*blr 14 php curl

这个网站现在已经运行了几个月,并且一直运行良好.我有一个PHP页面,它根据网址中的数据创建发票(例如,viewinvoice.php?id = 250根据记录250建立发票).此页面可通过Web浏览器访问,并且工作正常.

在一个完全不同的页面(即test.php)上,我试图通过cURL访问该文件.但是,当我进行调用并且var_dump结果时,我得到bool(false).

这是进行cURL调用的函数:

function file_get_contents_curl($url) {
$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);

$data = curl_exec($ch);
curl_close($ch);

return $data;
}
Run Code Online (Sandbox Code Playgroud)

HOME是一个表示完整URL的常量(例如http://www.example.com/).

$invoice_contents = file_get_contents_curl(HOME.'viewinvoice.php?id=242');
echo $invoice_contents;
var_dump( $invoice_contents );
Run Code Online (Sandbox Code Playgroud)

我已经尝试将网址更改为外部网址(即http://www.google.com/),页面加载就好了.我得到谷歌的主页.但是同一域中的任何页面都不会加载.这有可能发生吗?

我不是服务器管理员,但我有权访问服务器.我最近没有更改任何设置,但服务器管理员可能已经升级了apache或php的版本?

在任何情况下,是否有我可以修改的设置以使其再次工作?

PS我刚尝试从外部服务器(不同的域)进行这个确切的调用,它工作得很好.

Ala*_*blo 44

执行curl之后,输入如下内容:

echo curl_getinfo($ch) . '<br/>';
echo curl_errno($ch) . '<br/>';
echo curl_error($ch) . '<br/>';
Run Code Online (Sandbox Code Playgroud)

你会看到你的卷曲执行期间失败了什么.

更多信息:curl_getinfo curl_errno curl_error

  • 我在curl_close($ch)之前添加了这些行,并且能够看到有关请求的更多信息。我将来肯定会使用这种方法。不幸的是,在我尝试此操作之前问题已自行解决,因此不存在任何错误。该网站恢复正常运行。我从没想过我会说我希望它仍然坏掉,但因为我不知道出了什么问题......我希望它是坏的。如果再次发生这种情况,我一定会使用此信息。 (2认同)