PHP将html转换为空格,>到>等等

时间:2013-03-08 08:36:25

标签: php html

我想将所有html标签(& nbsp& gt& lt等)转换为文字格式; 我试过了

html_entity_decode() 

但会回来吗?如果& nbsp。

5 个答案:

答案 0 :(得分:19)

使用htmlspecialchars_decodehtmlspecialchars相反。
PHP文档页面中的示例:

    $str = '<p>this -&gt; &quot;</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 &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; 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 &nbsp; XYZ') );

?>

答案 4 :(得分:2)

我知道我的答案很晚才进行,但认为这可能有助于其他人。我发现提取所有特殊字符的最佳方法是在php中使用utf8_decode()。即使处理&nbsp;或代表空格的任何其他特殊字符,也使用utf8_decode()

使用utf8_decode()之后,可以直接在代码中操作这些字符。例如,在以下代码中,函数clean()用空格替换&nbsp;。然后使用preg_replace()用一个空格替换所有额外的空格。使用trim()删除前导和尾随空格。

function clean($str)
{       
    $str = utf8_decode($str);
    $str = str_replace("&nbsp;", "", $str);
    $str = preg_replace("/\s+/", " ", $str);
    $str = trim($str);
    return $str;
}

$html = "&nbsp;&nbsp;&nbsp;&nbsp;  &nbsp;Hello world! lorem ipsum.";
$output = clean($html);
echo $output;
  

你好世界! lorem ipsum。