【问题标题】:Convert all characters to dec or hex HTML code equivalent将所有字符转换为等效的十进制或十六进制 HTML 代码
【发布时间】:2022-02-07 20:28:42
【问题描述】:

有没有一种方法可以使用 PHP 将所有字符(包括常规字符)转换为类似这样的字符:

&\#38; &\#233; &\#224; &\#231; &\#60;

当我说常规字符时,我的意思是说诸如“ABCD123!@#$”之类的字符。

这可能吗?

【问题讨论】:

    标签: php html encoding


    【解决方案1】:

    你可以用这一个班轮做到这一点。

    1. 将字符串拆分为适当的数组。
    2. 遍历字符以获得它们的序数值。
    3. 加入实体模式。
    echo '&#' . join(';&#', array_map('ord', str_split($str))) . ';';
    

    CodePad.

    另外,您说您想将字符转换为等效的十六进制,但您的值似乎都不是十六进制,除非这是巧合并且您的示例中没有 a-f

    【讨论】:

      【解决方案2】:

      有几种方法。一个是

      join('', array_map(create_function('$c', 'return "&#".ord($c).";";'), str_split($string)));
      

      【讨论】:

        【解决方案3】:

        借助 Alex/Anomie 的回答,要获得完整的 Unicode 支持,您可以使用 http://hsivonen.iki.fi/php-utf8/ 的包来执行以下操作:

        '&#' . join(';&#', utf8ToUnicode($str) . ';'
        

        【讨论】:

          猜你喜欢
          • 2018-10-13
          • 2019-01-01
          • 2010-10-23
          • 1970-01-01
          • 1970-01-01
          • 2019-07-26
          • 1970-01-01
          • 2018-01-22
          • 2017-06-28
          相关资源
          最近更新 更多