代码之家  ›  专栏  ›  技术社区  ›  Andrew

htmlentities在升级到PHP 5.5后返回空白

  •  -1
  • Andrew  · 技术社区  · 8 年前

    升级到PHP5.5后,html_entities将为某些字符串返回空白。具体来说,它似乎是包含法语字符的字符串。我已尝试将其设置为UTF-8,但仍然为空:

    htmlentities($str,ENT_COMPAT, 'UTF-8');
    

    有人知道这里发生了什么吗?

    我的代码在PHP 5.3.3上运行时没有问题。

    谢谢你的帮助。

    EDIT:注释中的字符串示例

    "<h1>Obtenez de meilleurs résultats en moins de temps. Garanti.</h1>" 
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   ezzarghili    8 年前

    引用自 http://php.net/manual/en/function.htmlentities.php

    如果输入字符串包含给定编码中的无效代码单元序列,则将返回空字符串,除非设置了ENT_IGNORE或ENT_SUBSTITUTE标志。

    比如

    <?php
    $str = "<h1>\xe2 title</h1>";
    echo htmlentities($str,ENT_COMPAT, 'UTF-8');
    

    看见 https://3v4l.org/9OuRE

    将返回空字符串