Php htmlspecialchars将double_encode false设置为默认值

Php htmlspecialchars将double_encode false设置为默认值,php,htmlspecialchars,Php,Htmlspecialchars,我有一个庞大的系统,出于安全原因,我想对所有$\u GET和$\u POST变量执行htmlspecialchars。问题是将出现重复的htmlspecialchars,而它将显示 &lt;script&gt;&lt;/script&gt; 有没有办法将double\u encode false设置为默认值而不是true?您可以重写函数并将double\u encode参数设置为false作为默认值。 下面是示例代码: <?php rename_funct

我有一个庞大的系统,出于安全原因,我想对所有
$\u GET
$\u POST
变量执行
htmlspecialchars
。问题是将出现重复的
htmlspecialchars
,而它将显示

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

有没有办法将double\u encode false设置为默认值而不是true?

您可以重写函数并将
double\u 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);');
?>

您可以重写该函数,并将
double\u 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);');
?>


从PHP 5.2.3开始,添加了参数double_encode。更多信息:您可以简单地为htmlspecialchars函数添加false for double_encode参数。我知道。。我的问题是,我是否可以对所有htmlspecialchars函数全局执行此操作,因为我有很多函数。自PHP5.2.3以来,添加了参数double_encode。更多信息:您可以简单地为htmlspecialchars函数添加false for double_encode参数。我知道。。我的问题是,我是否可以对所有htmlspecialchars函数全局执行此操作,因为我有很多函数..我尝试过,但它需要PECL apd。没有任何插件是不行的?我试过了,但它需要PECL apd。没有插件是不行的?