我继承了一个PHP脚本,它只是试图下载.csv文件。但是,它不会在承载脚本的服务器上按预期运行。在我的电脑上,相同的脚本工作正常:
以下代码的摘录:
$file = 'myfile.csv';
$url = 'http://example.com/documents/myfile.csv';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if(curl_exec($ch)!==FALSE){
$urlValid = true;
$info = curl_getinfo($ch);
print_r($info);
$csv = file_get_contents($url);
print_r($csv);
$f = fopen('php://temp', 'r+');
fwrite($f, $csv);
rewind($f);
}
else{
$urlValid = false;
echo 'Url not valid'."\n";
exit;
}
使用allow_url_fopen = On
我已经添加了一些调试 - $ info返回正确的url,content_type和content_length,但$ csv是一个通用的html错误页面。
我可以使用服务器中的curl -O http://example.com/documents/myfile.csv
,并按预期下载文件。
如上所述,我可以从我的电脑上运行脚本,并按预期下载文件。
我没有想法:(
可能有助于CentOS 5,PHP 5.1.6的版本