将字符串发送到htmlentities()
时,会在我们的生产环境中生成结果,但在我的开发环境中,htmlentities()
会生成一个空字符串。
$content = htmlentities($content, ENT_NOQUOTES);
答案 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');