2012-04-26 74 views
1

我試圖將HTML實體從源字符串轉換爲它們的文字字符等效。php html_entity_decode如何使用

例如:

<?php 

    $string = "Hello &#8211; World"; 
    $converted = html_entity_decode($string); 

    ?> 

雖然這理所當然地轉換屏幕上的實體,當我在看的HTML代碼,仍呈現明確的實體。我需要改變它,以便從字面上轉換實體,因爲我不使用HTML頁面中的字符串。

關於我在做什麼的錯誤?

FYI我送了轉換後的字符串蘋果推送通知服務:

$payload['aps'] = array('alert' => $converted, 'badge' => 1, 'sound' => 'default'); 
    $payload = json_encode($payload); 

回答

0

你在哪裏得到的結果,例如該物品仍然顯示在哪裏?轉換後你有error_log嗎?

也許您需要將另外兩個參數添加到html_entity_decode,因爲json_encode要求字符串爲UTF-8編碼。試試這個:

$converted=html_entity_decode($string,ENT_COMPAT,"UTF-8"); 

編輯呀,檢查它在我phpsh,你肯定需要增加的兩個參數(特別是UTF-8)。

0

要將一個實體解碼爲一個字符,html_entity_decode需要知道您希望您的字符所在的編碼。「ü」可以用Latin-1,UTF-8,UTF-16和其他編碼。默認值是Latin-1。 ( - ,EN DASH)不能用Latin-1表示。因此它保持不變。告訴html_entity_decode將其解碼爲可表示該字符的編碼,如UTF-8:

html_entity_decode($str, ENT_COMPAT, 'UTF-8') 
+0

謝謝,我會盡力去做 – heifeng 2012-04-26 07:12:42

相關問題