htmlspecialchars将double_encode设置为false为默认值

时间:2015-08-12 06:55:47

标签: php htmlspecialchars

我有一个庞大的系统,出于安全考虑,我想对所有htmlspecialchars$_GET变量进行$_POST。问题是会有重复的htmlspecialchars而不是<script>会显示

&lt;script&gt;&lt;/script&gt;

有没有办法将double_encode设置为默认值而不是true?

1 个答案:

答案 0 :(得分:0)

您可以重写该函数并将double_encode参数设置为false作为默认值。 以下是示例代码:

<?php
rename_function('htmlspecialchars', 'renamed_htmlspecialchars');
function overriden_htmlspecialchars($string, $flags=NULL, $encoding='cp1251', $double_encode=false) {
    $flags = $flags ? $flags : (ENT_COMPAT|ENT_HTML401);
    return renamed_htmlspecialchars($string, $flags, $encoding, $double_encode);
}
override_function('htmlspecialchars', '$string, $flags, $encoding, $double_encode', 'return overriden_htmlspecialchars($string, $flags, $encoding, $double_encode);');
?>