这个网站已经上线几个月了,一直运行良好。我有一个 PHP 页面,它根据 url 中的数据创建发票(例如 viewinvoice.php?id=250 根据记录 250 构建发票)。该页面可通过网络浏览器访问,并且运行良好。
在一个完全不同的页面(即 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;
}
HOME 是一个常量,表示完整的 url(例如http://www.example.com/)。
$invoice_contents = file_get_contents_curl(HOME.'viewinvoice.php?id=242');
echo $invoice_contents;
var_dump( $invoice_contents );
我尝试将 url 更改为外部 url(即http://www.google.com/)并且页面加载得很好。我得到谷歌的主页。但是不会加载同一域中的任何页面。有没有理由会发生这种情况?
我不是服务器管理员,但我对服务器具有 root 访问权限。我最近没有更改任何设置,但是服务器管理员可能已经升级了 apache 或 php 的版本?
无论如何,我可以修改设置以使其再次工作吗?
PS我刚刚尝试从外部服务器(不同的域)进行这个确切的调用,它工作得很好。