CURL с @ в имени пользователя - PullRequest
1 голос
/ 15 апреля 2011

Я пытаюсь загрузить файл с CURL по FTP.но у меня есть проблема с именем пользователя, на моем хостинге все имена пользователей FTP - user@site.com, поэтому при попытке загрузить я получаю следующую ошибку:

Ошибка скручивания: не удалось разрешить сайт хоста.com: password@site.com'

Вот код:

      $ftpuser = 'uploader@mysite.com';
      $ftppass = "blablabla";
      $ftppath = "mysite.com/";
      $ftpurl = "ftp://".$ftpuser.":".$ftppass."@".$ftppath;

Может кто-нибудь сказать мне, как я могу передать имя пользователя для решения проблемы.

Ответы [ 2 ]

4 голосов
/ 15 апреля 2011

Две вещи:

  1. Вы сможете обойти проблему @, используя urlencode для преобразования небезопасного символа.
  2. Было бы лучше использовать опцию 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();
0 голосов
/ 15 апреля 2011

Можете ли вы указывать имя пользователя и пароль отдельно, а не все как часть URL, что может помочь ему более правильно понимать данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...