我在两个不同的环境中测试完全相同的功能,一个是本地开发环境,另一个是登台服务器。他们有完全相同的代码。
当我对包含该功能的每个端点发出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级别可能会发生?
答案 0 :(得分:0)
在htmlspecialchars
的php文档中:
编码:定义转换中使用的编码。如果省略,则此参数的默认值为PHP先前版本的ISO-8859-1 从5.4.4开始到5.4.0和UTF-8。
所以,基于此,我尝试明确设置字段,因此它们不会默默地默认为不同的东西。
htmlspecialchars( $string , ENT_COMPAT, 'UTF-8' );
现在两个不同环境之间的输出是相同的。