2011-04-15 59 views
1

我试图通过FTP上传带CURL的文件。但我有用户名的问题,在我的托管所有的FTP用户名都是[email protected],所以我尝试上传时出现以下错误:CURL with @用户名

卷毛错误:无法解析主机'site.com :[email protected]

下面是代码:

 $ftpuser = '[email protected]'; 
     $ftppass = "blablabla"; 
     $ftppath = "mysite.com/"; 
     $ftpurl = "ftp://".$ftpuser.":".$ftppass."@".$ftppath; 

有人可以告诉我怎样才能通过用户名来解决这个问题。

回答

4

两件事情:

  1. 您应该能够通过使用urlencode到非安全字符转换,以绕过@问题。
  2. 我相信,使用CURLOPT_USERPWD选项与curl_setopt来设置用户名和密码对会更好。

所以:

<?php 

$ftpuser = urlencode('[email protected]'); 
$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(); 
0

您能不能给卷曲的用户名和密码seperately,而不是所有的URL的一部分,这可能有助于更正确地理解数据。