Php cUrl无法从同一服务器获取文件
我正试图从运行php脚本的同一台服务器上获取文件,我正在运行php脚本中获取文件 它不会下载文件并获得超时。 我能够从浏览器中使用相同的url获取文件 如果url不是同一服务器,则cUrl能够获取文件 我需要修改它们的任何设置,以支持在同一服务器上使用cUrl下载文件 谢谢你的帮助 我的代码:Php cUrl无法从同一服务器获取文件,php,curl,Php,Curl,我正试图从运行php脚本的同一台服务器上获取文件,我正在运行php脚本中获取文件 它不会下载文件并获得超时。 我能够从浏览器中使用相同的url获取文件 如果url不是同一服务器,则cUrl能够获取文件 我需要修改它们的任何设置,以支持在同一服务器上使用cUrl下载文件 谢谢你的帮助 我的代码: $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRA
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $file_url);
$content = curl_exec($ch);
curl_close($ch);
尝试使用curl的所有参数
function curl_download($Url){
// is cURL installed yet?
if (!function_exists('curl_init')){
die('Sorry cURL is not installed!');
}
// create a new cURL resource handle
$ch = curl_init();
// Now set some options (most are optional)
// Set URL to download
curl_setopt($ch, CURLOPT_URL, $Url);
// Set a referer
//curl_setopt($ch, CURLOPT_REFERER, "http://www.example.org/yay.htm");
// User agent
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
// Include header in result? (0 = yes, 1 = no)
curl_setopt($ch, CURLOPT_HEADER, 0);
// Should cURL return or print out the data? (true = return, false = print)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Timeout in seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// Download the given URL, and return output
$output = curl_exec($ch);
// Close the cURL resource, and free system resources
curl_close($ch);
return $output;
}
在成功获取的文件上使用Google Chrome“
Copy as cURL
(打开“开发工具”、“网络”选项卡,右键单击请求),粘贴到终端,然后执行
如果一切正常,并且您能够通过终端上的curl获取文件,那么就有一些具有头和/或请求参数的内容。如果不是,则更有可能是您的网络配置出了问题
另外,检查web服务器日志,您是否使用脚本访问web服务器
您使用的是
127.0.0.1
还是localhost
还是完整TLD?浏览器是否通过代理连接到Internet?我找到的解决方法是:
测试您是否在自己的服务器上,然后对同一脚本使用简单的include:
if (($ser = servername()) != $floc) {
return(GetFileContent("$floc/$page.php"));
} else { include "$page.php"; }
服务器在防火墙或NAT路由器后面吗?解析URL可能会返回公共IP,但您需要使用私有IP。直接从浏览器请求URL,然后查看出现了什么??该url是否有效?正如我所提到的,url有效。我可以从浏览器中获取文件。您试图获取的“文件”也是脚本吗?可能两个脚本都使用会话吗?然后,下载脚本中打开的会话将锁定会话文件,以便第二个脚本无法访问它,并等待释放锁。该方案的解决方案是在发出HTTP请求之前,在下载脚本中调用
session\u write\u close