PHP: обновление статуса Twitter с сохранением специальных символов - PullRequest
2 голосов
/ 12 марта 2010

На этой странице ...

http://www.axisofeco.com/matters/2010/03/11/the-word-youre-looking-for-is-sublime/

... У меня есть ссылка «Tweet this», которая вставляется в заголовок статьи и ссылку в вашем окне обновления Twitter (если вы вошли в Twitter).

Проблема в том, что когда в статьях, подобных приведенной выше, есть специальные символы (в основном причудливые одинарные / двойные кавычки), Твиттер не может с ними справиться. Вот что Twitter пытается (и терпит неудачу) вставить в окно обновления Twitter:

8217; ре + ищешь + для + есть + «возвышенный» + http://is.gd/acIW2

(если цитаты на самом деле выглядят нормально в приведенной выше строке, поверьте мне, они остаются закодированными, когда Twitter пытается с ними разобраться!)

Соответствующий PHP для форматирования обновления Twitter:

$url = str_replace(' ', '+', $url); 
echo htmlentities($url, ENT_COMPAT, 'UTF-8');

Я пытался использовать разные функции, например, с помощью urlencode (), но, похоже, ничто не кодирует строку ($ url) в «дружественном к Твиттеру» виде.

1 Ответ

1 голос
/ 12 марта 2010

Простой urlencode() работал для меня:

Чирикать Это

//make sure you only urlencode the get var
echo urlencode("The word you’re looking for is “sublime”");
//ran the above on php and used the result in the link

Тем не менее, я бы просто заменил «красивые» кавычки на нормальные кавычки перед формированием URL. В зависимости от браузера / местоположения полученный твит может выглядеть некорректно для других пользователей.

...