特殊字符转换为HTML ASCII实体等价物

5

我该如何将所有特殊字符转换为它们对应的HTML实体?

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

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

请在 这里 查看。我想要的输出格式是 实体编号即第三列

实际情况是 - 我需要从 fckeditor 中获取输入,然后保存到数据库中。因此,我需要将文本中的所有特殊字符转换为它们对应的HTML实体,否则会出现错误。


2
htmlspecialchars()?http://in3.php.net/manual/zh/function.htmlspecialchars.php - Shankar Narayana Damodaran
@Shankar Damodaran,我忘了提到 - 我也尝试过htmlspecialchars(),但没有得到输出。 - Ripa Saha
@Ruud,那对我现在不太合适。因为我需要从fckeditor输入中转换特殊字符。 - Ripa Saha
如何理解:echo htmlspecialchars("&#" . ord('$') . ";"); - divaka
@divaka 在评论前请仔细检查问题。 - Ripa Saha
显示剩余13条评论
1个回答

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

演示


1
感谢您的支持! - divaka
请尝试使用以下字符串:"$char = "$ & / \ { } ( - ' ,",以获得所需的输出结果。 - Ripa Saha
@ShankarDamodaran 针对特定情况它是有效的。但请检查您的演示。我已经发布了实际字符串。 - Ripa Saha
请检查 $100 并从 test@cc.com 获取电子邮件。 - Ripa Saha
1
@ShankarDamodaran 我非常确定 ripa 的问题是她所使用的浏览器或文本编辑器或任何其他地方都将实体转换为相应的符号,因此她看到的是实体而不是符号本身! - divaka
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接