我想将所有html标签(& nbsp& gt& lt等)转换为文字格式; 我试过了
html_entity_decode()
但会回来吗?如果& nbsp。
答案 0 :(得分:19)
使用htmlspecialchars_decode
与htmlspecialchars
相反。
PHP文档页面中的示例:
$str = '<p>this -> "</p>';
echo htmlspecialchars_decode($str);
//Output: <p>this -> "</p>
答案 1 :(得分:10)
html_entity_decode()与htmlentities()相反,因为它将字符串中的所有HTML实体转换为适用的字符。
$orig = "I'll \"walk\" the <b>dog</b> now";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll "walk" the <b>dog</b> now
echo $b; // I'll "walk" the <b>dog</b> now
答案 2 :(得分:5)
使用
html_entity_decode()代替
html_entity_encode()
答案 3 :(得分:2)
如果您查看html_entity_decode()手册:
你可能想知道为什么修剪(html_entity_decode(''));不 将字符串减少为空字符串,这是因为'' 实体不是ASCII代码32(由trim()剥离)但是ASCII 默认ISO 8859-1字符集中的代码160(0xa0)。
您可以将html_entity_decode()函数嵌套在str_replace()到ASCII#160的空格中:
<?php
echo str_replace("\xA0", ' ', html_entity_decode('ABC XYZ') );
?>
答案 4 :(得分:2)
我知道我的答案很晚才进行,但认为这可能有助于其他人。我发现提取所有特殊字符的最佳方法是在php中使用utf8_decode()。即使处理
或代表空格的任何其他特殊字符,也使用utf8_decode()
。
使用utf8_decode()
之后,可以直接在代码中操作这些字符。例如,在以下代码中,函数clean()用空格替换
。然后使用preg_replace()
用一个空格替换所有额外的空格。使用trim()
删除前导和尾随空格。
function clean($str)
{
$str = utf8_decode($str);
$str = str_replace(" ", "", $str);
$str = preg_replace("/\s+/", " ", $str);
$str = trim($str);
return $str;
}
$html = " Hello world! lorem ipsum.";
$output = clean($html);
echo $output;
你好世界! lorem ipsum。