htmlentities()什么都不返回

时间:2014-02-04 03:34:09

标签: php encoding character-encoding html-entities

将字符串发送到htmlentities()时,会在我们的生产环境中生成结果,但在我的开发环境中,htmlentities()会生成一个空字符串。

$content = htmlentities($content, ENT_NOQUOTES);

1 个答案:

答案 0 :(得分:4)

应该指定编码,因为旧版本的PHP中的编码默认为一个值,而在较新版本的PHP中则为另一个值:

  

如果省略[encoding],则此参数的默认值在5.4.0之前的PHP版本中为ISO-8859-1,从PHP 5.4.0开始为UTF-8。

在我的例子中,传递给htmlentities的字符串是用ISO-8859-1编码的,它在较旧版本的PHP中工作而没有指定编码,但较新版本的PHP试图用它来解析它而是UTF-8编码,它产生空字符串。指定这样的编码解决了这个问题:

$content = htmlentities($content, ENT_NOQUOTES, 'ISO-8859-1');