Php 用户名为@in的CURL

Php 用户名为@in的CURL,php,curl,Php,Curl,我正在尝试通过FTP上传带有CURL的文件。但是我的用户名有问题,在我的主机中所有的FTP用户名都是user@site.com因此,我在尝试上载时出现以下错误: Curl错误:无法解析主机的site.com:password@site.com" 代码如下: $ftpuser = 'uploader@mysite.com'; $ftppass = "blablabla"; $ftppath = "mysite.com/"; $ftpurl = "ft

我正在尝试通过FTP上传带有CURL的文件。但是我的用户名有问题,在我的主机中所有的FTP用户名都是user@site.com因此,我在尝试上载时出现以下错误:

Curl错误:无法解析主机的site.com:password@site.com"

代码如下:

      $ftpuser = 'uploader@mysite.com';
      $ftppass = "blablabla";
      $ftppath = "mysite.com/";
      $ftpurl = "ftp://".$ftpuser.":".$ftppass."@".$ftppath;
有人能告诉我如何传递用户名来解决问题吗。

两件事:

  • 通过使用转换非安全字符,您应该能够绕过
    @
    问题
  • 我认为最好使用
    CURLOPT\u USERPWD
    选项和
    curl\u setopt
    来设置用户名和密码对
  • 因此:

    两件事:

  • 通过使用转换非安全字符,您应该能够绕过
    @
    问题
  • 我认为最好使用
    CURLOPT\u USERPWD
    选项和
    curl\u setopt
    来设置用户名和密码对
  • 因此:


    您能否将用户名和密码分别提供给curl,而不是全部作为URL的一部分,这可能有助于它更正确地理解数据。

    您能否将用户名和密码分别提供给curl,而不是全部作为URL的一部分,这可能有助于它更正确地理解数据

    <?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();