2012-12-24 22 views
0

我想使用戶可以在Twitter他們demo喜歡不過的歌曲,在網址中包含土耳其語字符的Twitter自就像圖像 enter image description here
網址土耳其第一字符後拆分網址在鳴叫必須像myurl.com/?view=s&artist=demet%20akıalın&track=ışık%20hğzmesi 但拼切之後demet akTwitter的削減我的網址具有高手

碼我用的是在這裏:

<?php 
    define('APP_BASE_URL', 'http://www.myurl.com'); 
    header('Content-type: text/html; charset=UTF-8'); 
    $a['artistname'] = 'demet akıalın'; 
    $a['trackname'] = 'ışık hğzmesi'; 
?> 

<a target="_blank" title="Share on Twitter" href="https://twitter.com/share?hashtags=CruisEar&text=<?php echo $a['artistname']." - ".$a['trackname']; ?>&url=<?php echo urlencode(str_replace(" ","%20",APP_BASE_URL."?view=s&artist=".$a['artistname']."&track=".$a['trackname']));?>" data-url="https://dev.twitter.com" data-via="your_screen_name" data-lang="en"><img src="http://www.olmasigereken.com/demo2/img/twit.gif" alt="share on twitter" /></a> 
+0

引用您的數組鍵:'$ A [「ARTISTNAME」]' –

+0

我已經引用和編輯我的文章,但它不是幫助 – Tahtakafa

+0

並不意味着暗示它會解決你的問題 - 只是竊聽我。您應該看到關於*使用未定義的常量藝術家名稱 - 假定爲「藝術家名稱」*的通知。另外,所有utf-8字符都不允許在URL中有很好的理由。任何人都可以購買與銀行網站完全相同的域名來進行釣魚信息。即bankofamerica.com實際上可以轉到不同的服務器上,因爲即使它*看起來像正確的URL一樣UTF-8有足夠可愛的相似字符來使這成爲一個真正的安全問題。除非你校驗網址或其他東西,否則你不會知道。 –

回答

0

Twitter正在做的是正確的。根據HTTP/1.1規範,URL不能包含非ASCII值,某些ASCII值需要進行百分比編碼。

ı字符非ASCII所以它必須是百分比編碼,就像你的空間有可能成爲%20

echo rawurlencode(utf8_encode(APP_BASE_URL.'?view=s&artist='.$a[artistname].'&track='.$a[trackname])); 
+0

你對編碼百分比有什麼建議? – Tahtakafa

+0

@YouCanDoIt雖然urlencode()通常做得很好,但我真的建議使用rawurlencode(utf8_encode()) –

+0

如果我使用'rawurlencode(utf8_encode())'在推文窗口上沒有url – Tahtakafa