【问题标题】:Special characters to HTML ASCII Entity Equivalent等效于 HTML ASCII 实体的特殊字符
【发布时间】:2014-01-24 10:11:23
【问题描述】:

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

特殊字符如$ & / \ { } ( - ' , @

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

请查看here。我想要像 Entity Number 之类的输出,即第 3 列

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

【问题讨论】:

  • @Shankar Damodaran,我忘了提 - 我也试过 htmlspecialchars()。但没有得到输出
  • 您正在寻找的$ 作为 HTML 实体的预期输出是什么?
  • 对于 $ 它会给 $
  • @ShankarDamodaran 请检查我编辑的问题。

标签: php function ascii special-characters fckeditor


【解决方案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

【讨论】:

  • 感谢您的支持!
  • 请尝试 $char = "$ & / \ { } ( - ' ,"; 这个字符串。没有给我提到的输出。
  • @ripa,它工作正常。查看答案中的演示。
  • @ShankarDamodaran 对于它正在工作的特定案例。但检查你演示。我已经发布了实际的字符串。
  • @ShankarDamodaran 我很确定 ripa 的问题是浏览器或文本编辑器或她使用它的任何地方,正在将实体转换为相应的符号,她看到的是实体,而不是符号本身!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 1970-01-01
  • 2019-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多