htmlspecialchars仅适用于某些环境

时间:2013-10-18 18:41:46

标签: php character-encoding html-entities

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

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

Local(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级别可能会发生?

1 个答案:

答案 0 :(得分:0)

htmlspecialchars的php文档中:

  

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

所以,基于此,我尝试明确设置字段,因此它们不会默默地默认为不同的东西。

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

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