Php cUrl在localhost上运行良好,但它';s不在服务器上工作,只显示空白页 当我在服务器上运行下面的代码时,它只显示空白页并突然停止进一步执行,我还检查了安装的卷曲服务器。

Php cUrl在localhost上运行良好,但它';s不在服务器上工作,只显示空白页 当我在服务器上运行下面的代码时,它只显示空白页并突然停止进一步执行,我还检查了安装的卷曲服务器。,php,remote-access,php-curl,Php,Remote Access,Php Curl,这是我的密码 $ftp_server = 'ftps://'.'server/Voorraadtonen link.csv'; $ch = curl_init(str_replace(" ","%20",$ftp_server)); curl_setopt($ch, CURLOPT_URL, $ftp_server); curl_setopt($ch, CURLOPT_USERPWD,'username'.':'.'password'); curl_setopt($ch, CURLOPT_SS

这是我的密码

$ftp_server = 'ftps://'.'server/Voorraadtonen link.csv'; 
$ch = curl_init(str_replace(" ","%20",$ftp_server));
curl_setopt($ch, CURLOPT_URL, $ftp_server);
curl_setopt($ch, CURLOPT_USERPWD,'username'.':'.'password');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY);
curl_setopt($ch, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS);
//curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_PORT, 990);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
curl_setopt($ch, CURLOPT_VERBOSE,true);
$output = curl_exec($ch);
$error_no = curl_errno($ch);
echo $output; exit;

最新更新

您的代码中有1个以上的错误

您在url中使用的FTPS需要SSL验证,而在url中使用的FTPS为false 你的密码

它们应该是真的:
SSL
不支持真,所以它们应该像另一个答案中的@dharman warn一样

但要将ssl设置为true,则需要另一种设置,如
cacert
file 诸如此类

在此处下载cacert文件:

2.您的url不是真正的url
$ftp_server='ftps://'。'server/Voorraadtonen link.csv'
,此url将不会获得任何信息,但它至少应在
错误日志
文件中返回一个错误,正如您所说的,所有错误报告都已启用

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);
1不需要更多的左标题,但如果需要的话

curl_setopt($curl, CURLOPT_HEADER, false); //Or
curl_setopt($curl, CURLOPT_HEADER, true);
现在它应该可以正常工作了

注意:示例代码是一个工作示例,您可以根据需要对其进行编辑

更新:在修改代码后,您说您在代码中做了修改(仍然没有显示给我们),最后我们得到了一个错误。我再次要求您在问题中添加修改过的代码

错误\u no 28 cURL错误28:连接超时

cURL 28错误发生在cURL请求未在一定时间内完成时

当cURL timeout值设置得太低或防火墙阻止cURL请求时,就会发生这种情况

另一种可能是安全模块,例如Apache mod_安全模块

要修复cURL错误,您可以联系主机提供商

那么基本上

您的服务器正在阻塞。您的凭据与所需的不匹配 credentails。服务器需要SSL,但您没有设置它。 您的函数运行最大服务器内存限制设置


读取错误日志文件,在curl或php错误报告上启用错误报告
if(curl\u errno($ch)){抛出新异常(curl\u error($ch))}
已启用错误报告错误报告(E\u ALL);ini设置(“显示错误”,1);你应该有错误,使用我在评论中给出的代码并阅读您的错误日志文件我使用了它但什么也没有显示您在
$error\u no
中得到了什么吗?@HaqNawaz update question并显示您所做的事情我正在本地主机上运行相同的代码,该代码正在工作并正在处理数据,但在服务器上它不工作,即使它没有显示任何错误,我启用了错误报告并增加了执行时间,但没有显示任何内容。本地主机和实时服务器的工作方式不同,其中1个是
SSL
Localhost不需要,但实时服务器需要,
CURLOPT\u RETURNTRANSFER
应该在实时上启用,但在本地上不需要,在live server上可能需要http头,我可以告诉您很多事情,所以您想让它工作吗?编辑您的问题并添加您尝试的最新代码。在我的问题中使用这个例子,它运行良好,我对它进行了长期测试。然后一步一步地添加其他内容,这样你就可以发现问题所在。如果你不向我们展示,也不尝试我们所说的内容,我们就无法猜测你的设置和代码。看,这是我的另一个功能:我对它做了更改,它给了我28个错误
$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);
    $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.