2010-03-11 36 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