1

我在两个不同的环境中测试完全相同的功能,一个是本地开发环境,另一个是登台服务器。他们有完全相同的代码。

当我curl向每个包含该功能的端点发出请求时,我得到两个不同的结果:

本地 (php 5.4)

//this was the desired output
<p><span>Awesome water shooting power</span></p>

分期(php 5.3)

//none of the html chars are changed.
<p><span>Awesome water shooting power</span></p>

实际的文本字符串htmlspecialchars以下列方式运行:

htmlspecialchars( $req->get('description') )

我是否应该专门使用此htmlspecialchars方法中的所有其他参数以使其在任何环境中的行为方式都相同?还是在 php.ini 级别可能发生的事情?

4

1 回答 1

0

在 php 文档中htmlspecialchars

编码:定义转换中使用的编码。如果省略,则此参数的默认值在 PHP 5.4.0 之前的版本中为 ISO-8859-1,从 PHP 5.4.0 开始为 UTF-8。

因此,基于此,我尝试显式设置字段,因此它们不会默认默认为不同的东西。

htmlspecialchars( $string , ENT_COMPAT, 'UTF-8' );

现在两个不同环境之间的输出是相同的。

于 2013-10-18T19:20:55.177 回答