我尝试通过FTP上传CURL文件。但我的用户名有问题,在我的托管中所有的FTP用户名都是user@site.com,所以当我尝试上传时出现以下错误:
卷曲错误:无法解析主机'site.com:password@site.com'
以下是代码:
$ftpuser = 'uploader@mysite.com';
$ftppass = "blablabla";
$ftppath = "mysite.com/";
$ftpurl = "ftp://".$ftpuser.":".$ftppass."@".$ftppath;
有人可以告诉我如何通过用户名来解决问题。
答案 0 :(得分:4)
两件事:
urlencode
转换非安全字符来解决@
问题。CURLOPT_USERPWD
选项与curl_setopt
设置用户名和密码对,我相信。所以:
<?php
$ftpuser = urlencode('uploader@mysite.com');
$ftppass = urlencode('blablabla');
$ftppath = 'mysite.com/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'ftp://' . $ftppath);
curl_setopt($ch, CURLOPT_USERPWD, $ftpuser . ':' . $ftppass);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec();
答案 1 :(得分:0)
你可以单独给curl分配用户名和密码,而不是全部作为URL的一部分,这可能有助于它更正确地理解数据。