2012-04-26 116 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