HTML ASCII实体等效的特殊字符

时间:2014-01-24 10:11:23

标签: php function ascii special-characters fckeditor

如何将所有特殊字符转换为相应的html实体?

特殊字符就像$ & / \ { } ( - ' , @等。

我尝试使用 htmlentities() htmlspecialchars()。但没解决我的问题。

请检查here。我希望输出像实体编号,即第3列

实际情况是 - 我需要从 fckeditor 获取输入。然后保存到数据库中。所以我需要从文本中将所有特殊字符转换为相应的html实体。否则它会给我错误。

1 个答案:

答案 0 :(得分:1)

您正在寻找的是与字符等效的ASCII。所以你需要使用ord()

顺便说一句divaka提到的是正确的。

这样做..

<?php

function getHTMLASCIIEquiv($val)
{
    $arr=['$','&','/','\\','{','}','(','-','\'',',','@'];
    $val = str_split($val);$str="";
    foreach($val as $v)
    {
        if(in_array($v,$arr))
        {
        $str.="&#".ord($v).";";
        }
        else
        {
            $str.=$v;
        }
    }
    return $str;
}

echo getHTMLASCIIEquiv('please check $100 & get email from test@cc.com');

<强> OUTPUT :

please check &#36;100 &#38; get email from test&#64;cc.com

Demo