PHP:更新Twitter状态,同时保持特殊字符不变

时间:2010-03-11 22:35:12

标签: php twitter special-characters encode

在此页面上......

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

...我有一个'Tweet this'链接,它粘贴在文章标题和链接到您的Twitter更新框中(如果您已登录到Twitter)。

问题是,当上面的文章中有特殊字符(主要是花哨的单/双引号)时,Twitter似乎无法处理它们。这就是Twitter尝试(并且可怕地)粘贴到Twitter更新框中的内容:

8217; RE +寻找+为是+“升华” + http://is.gd/acIW2

(如果引号实际上在上面的行中看起来没问题,请相信我,当Twitter试图处理它们时它们会被编码!)

用于格式化Twitter更新的相关PHP是:

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

我尝试过使用不同的函数,例如,使用urlencode(),但似乎没有任何东西以“Twitter友好”的方式编码字符串($ url)。

1 个答案:

答案 0 :(得分:1)

一个简单的urlencode()为我工作:

Tweet This

//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之前,我只需用正常引号替换“漂亮”引号。根据浏览器/位置的不同,生成的推文可能看起来不正确。