Передача строки в твиттер завершается неудачно после амперсанда - PullRequest
2 голосов
/ 21 июня 2010

Доброе утро,

Я пытаюсь передать строку в твиттер, используя следующий код

// The message you want to send
$message = "http://www.smartphonesoft.com/index.php?option=com_mtree&task=viewlink&link_id=" .$link_id . " " ."Android Software" . " " .$link_name . " " . $metadesc;

// The twitter API address
$url = 'http://twitter.com/statuses/update.xml';
// Alternative JSON version
// $url = 'http://twitter.com/statuses/update.json';
// Set up and execute the curl process
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "$url");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$message");
curl_setopt($curl_handle, CURLOPT_USERPWD, "$username:$password");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);

Однако все, что появляется в твиттере, это ссылка на

http://www.smartphonesoft.com/index.php?option=com_mtree

как можно увидеть здесь http://twitter.com/smartphonesft

Как я могу пройти через все после амперсанда?

Ответы [ 2 ]

7 голосов
/ 21 июня 2010

Вам необходимо закодировать URL с помощью urlencode:

$message = urlencode($message);
0 голосов
/ 04 июля 2011

Также обратите внимание, что если вы используете JavaScript, вам нужно вызвать encodeURIComponent(), а не encodeURI()

encodeURIComponent () необходим для следующих специальных символов:

, / ? : @ & = + $ #
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...