PHP特殊字符到html实体代码

PHP特殊字符到html实体代码,php,special-characters,html-entities,array-map,Php,Special Characters,Html Entities,Array Map,我正在尝试将数组中的特殊字符转换为html实体代码: 这是我的助手数组: 'specialChars' => [ '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '§', '©', '¶' ] 但这只会返

我正在尝试将数组中的特殊字符转换为html实体代码:

这是我的助手数组:

'specialChars' => [
    '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+',
    ',', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\',
    ']', '^', '_', '`', '{', '|', '}', '§', '©', '¶'
]
但这只会返回这个数组,它成功地转换了一些,而没有:

array:32 [▼
  0 => "!"
  1 => "&quot;"
  2 => "#"
  3 => "$"
  4 => "%"
  5 => "&amp;"
  6 => "'"
  7 => "("
  8 => ")"
  9 => "*"
  10 => "+"
  11 => ","
  12 => "/"
  13 => ":"
  14 => ";"
  15 => "&lt;"
  16 => "="
  17 => "&gt;"
  18 => "?"
  19 => "@"
  20 => "["
  21 => "\"
  22 => "]"
  23 => "^"
  24 => "_"
  25 => "`"
  26 => "{"
  27 => "|"
  28 => "}"
  29 => "&sect;"
  30 => "&copy;"
  31 => "&para;"
]

您必须像这样使用htmlentities的第二个参数“flag”

$htmlEntityArray = array_map(function($char) {
  return htmlentities($char, ENT_QUOTES | ENT_HTML5);
}, $specialChars);

您必须像这样使用htmlentities的第二个参数“flag”

$htmlEntityArray = array_map(function($char) {
  return htmlentities($char, ENT_QUOTES | ENT_HTML5);
}, $specialChars);

您必须使用
entu引号
entu HTML5


您必须使用
entu引号
entu HTML5

注意:我没有检查实体列表,因此没有注意到所有字符都有翻译。不过我留下了答案,以防它可以帮助其他人使用不同的字符列表


来自(我的):

具有HTML字符实体等价物的所有字符都将转换为这些实体

另见

  • -返回htmlspecialchars和htmlentities使用的转换表
在其他情况下,使用
HTML-ENTITIES
作为目标编码可以获得更好的结果。问题是实体中没有明显的模式(大多数是基本的US-ASCII字符,在HTML中没有任何特殊含义,因此不需要出于任何常见原因转换为HTML实体)。因此,您有两个选择:

  • 在和等的帮助下生成数字实体
  • 硬编码完整的实体列表并完成替换
    • 注意:我没有检查实体列表,因此没有注意到所有字符都有翻译。不过我留下了答案,以防它可以帮助其他人使用不同的字符列表


      来自(我的):

      具有HTML字符实体等价物的所有字符都将转换为这些实体

      另见

      • -返回htmlspecialchars和htmlentities使用的转换表
      在其他情况下,使用
      HTML-ENTITIES
      作为目标编码可以获得更好的结果。问题是实体中没有明显的模式(大多数是基本的US-ASCII字符,在HTML中没有任何特殊含义,因此不需要出于任何常见原因转换为HTML实体)。因此,您有两个选择:

      • 在和等的帮助下生成数字实体
      • 硬编码完整的实体列表并完成替换

      为什么不直接使用php或函数来实现这一点?我看到的轮子是重新发明的?为什么不直接使用php或函数,是什么让我这么做的?重新发明我看到的轮子?ENT_HTML5没有显示我需要的所有ENT_引号,ENT_HTML5也没有显示我需要的所有ENT_引号,我需要如何编辑函数以使类似的东西可用:
      Menu::convert('my name')并作为输出获取
      我的姓名和任务不使用方法,只需调用
      htmlentities($str,entu QUOTES | entu HTML5)
      @utdev。我想如果在很多地方调用它,您可以使用一个方法。我需要如何编辑该函数以使类似的内容可用:
      Menu::convert('my name')并作为输出获取
      我的姓名和任务不使用方法,只需调用
      htmlentities($str,entu QUOTES | entu HTML5)
      @utdev。我想如果在很多地方调用它,您可以使用一个方法。
      $specialChars = [
          '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+',
          ',', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\',
          ']', '^', '_', '`', '{', '|', '}', '§', '©', '¶'
      ];
      
      var_export(array_map(function ($str) { return htmlentities($str, ENT_QUOTES | ENT_HTML5); }, $specialChars));
      
      array (
          0 => '&excl;',
          1 => '&quot;',
          2 => '&num;',
          3 => '&dollar;',
          4 => '&percnt;',
          5 => '&amp;',
          6 => '&apos;',
          7 => '&lpar;',
          8 => '&rpar;',
          9 => '&ast;',
          10 => '&plus;',
          11 => '&comma;',
          12 => '&sol;',
          13 => '&colon;',
          14 => '&semi;',
          15 => '&lt;',
          16 => '&equals;',
          17 => '&gt;',
          18 => '&quest;',
          19 => '&commat;',
          20 => '&lbrack;',
          21 => '&bsol;',
          22 => '&rsqb;',
          23 => '&Hat;',
          24 => '&lowbar;',
          25 => '&grave;',
          26 => '&lbrace;',
          27 => '&vert;',
          28 => '&rcub;',
          29 => '&sect;',
          30 => '&copy;',
          31 => '&para;',
      )