最新更新!
您的代码中有超过 1 个错误,
您在 url 中使用 FTPS,需要 SSL 验证,并且其错误在
你的代码。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
//Dont use try! you shouldnt use
curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY);
他们应该是真的:SSL
不支持 true 所以他们应该像在另一个答案中@dharman warn 一样。
但是将 ssl 变为 true 将需要另一个设置,例如cacert
文件
等等,就像这样
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
//and include cacert.pem
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
在此处下载 cacert 文件:https://curl.haxx.se/docs/caextract.html https://curl.haxx.se/docs/caextract.html
2.您的网址不是真实网址$ftp_server = 'ftps://'.'server/Voorraadtonen link.csv';
,这个 url 不会得到任何结果,但它至少应该返回一个错误error_log
文件,正如您所说,所有错误报告均已启用
3.你的代码应该是这样的
$curl = curl_init();
$file = fopen("link.csv", 'w');
curl_setopt($curl, CURLOPT_URL, "ftp://ftp.site.com/link.csv");
//Make sure for correct url
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
//Make sure for correct url
curl_setopt($curl, CURLOPT_FILE, $file);
curl_setopt($curl, CURLOPT_USERPWD, "$_FTP[username]:$_FTP[password]");
//Make sure for your ftp credentials
curl_setopt($curl, CURLOPT_TIMEOUT, 20); //20 seconds will be enough
curl_exec($curl);
echo curl_errno($ch);
echo curl_error($ch);
curl_close($curl);
fclose($file);
剩下的标题不应该是必需的,但以防万一需要。
curl_setopt($curl, CURLOPT_HEADER, false); //Or
curl_setopt($curl, CURLOPT_HEADER, true);
现在应该可以正常工作了
NOTE :示例代码是一个工作示例,您可以根据您的要求进行编辑
UPDATE :修改后你说你在代码中做了(仍然没有向我们展示),最后我们得到一个错误。我再次要求您将修改后的代码添加到您的问题中。
Error_no 28 cURL 错误 28:连接超时
当 cURL 请求未在一定时间内完成时,会发生 cURL 28 错误。
当 cURL 超时值设置得太低或防火墙阻止 cURL 请求时,就会发生这种情况。
另一种可能性是安全模块,例如 Apache mod_security 模块。
要修复 cURL 错误 28,您可以联系您的托管提供商。
所以基本上!
您的服务器被阻止。您的凭据与所需的不匹配
信用证。服务器需要 SSL,但您没有设置它。
您的函数运行服务器内存限制设置的最大值。
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "ftp.site.com/link.csv");
//make sure your path to file is correct
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERPWD, "$_FTP[username]:$_FTP[password]");
//make sure your login credentials correct
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
//Set timeout for connection
curl_exec($curl);
echo curl_errno($ch);
echo curl_error($ch);
//Get errors
curl_close($curl);
//Importand close curl connection.