2010-03-11 107 views
2

在此页面...PHP:更新Twitter状态,同时保持特殊字符不变

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

...我有一个“发到Twitter”链接,粘贴在文章标题和链接到您的Twitter更新框(如果您已登录到Twitter)。

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

8217; RE +找+的+是+ “崇高” + http://is.gd/acIW2

(如果行情实际上是看在上述确定线,相信我,他们留在编码时的Twitter试图对付他们)

相关PHP格式化Twitter的更新是这样的:

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

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

回答

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之前正常的股票行情。取决于浏览器/位置,最终的推文可能对其他用户看起来不正确。

+0

这很奇怪。当我运行上面的确切代码时,我得到 - + word + you%92re + looking + for +是+%93sublime%94 - 作为输出。我在axisofeco.com服务器和我的本地服务器上获得了此信息。 – Jack 2010-03-13 15:18:52

+0

也许问题在于服务器/ PHP不知道开头的Unicode字符。虽然它在我的服务器上工作,但我不会在生产中使用它。 – 2010-03-14 12:08:38