好吧,我必须找到自己的答案。
file: wp-settings.php > function wp_magic_quotes() is called.
- 这个文件几乎在 wp 运行时被包含,被 wp-config.php 无条件地包含。
- 函数调用几乎在所有事情之前,
- 但是在 advanced-cache.php 之后调用
- 并且在操作钩子 do_action( 'plugins_loaded' ) 之后。
函数本身:
function wp_magic_quotes() (is in file wp-includes/load.php)
{
if(get_magic_quotes_gpc()) strip_slashes()
adds slashes to POST, GET, COOKIES and SERVER, using add_magic_quotes()
}
因此,如果您需要决定是否去除斜线,请使用:
if(!get_magic_quotes_gpc() and !function_exists('wp_magic_quotes')) do_not_strip;
这是完整的表单功能:
function POSTGET_stripslashes_all($forced=false)
{
global $POSTGET_stripslashes_all_done;
if(!get_magic_quotes_gpc() and !function_exists('wp_magic_quotes')) if(!$forced) return;//wp check
if($POSTGET_stripslashes_all_done) return;
//stripslashes
if(is_array($_POST)) $_POST=POSTGET_stripslashes_deep($_POST,$forced);
if(is_array($_GET)) $_GET=POSTGET_stripslashes_deep($_GET,$forced);
if(is_array($_REQUEST)) $_REQUEST=POSTGET_stripslashes_deep($_REQUEST,$forced);
$POSTGET_stripslashes_all_done=true;
}
function POSTGET_stripslashes_deep($value,$forced=false)
{
global $POSTGET_stripslashes_all_done;
if(!get_magic_quotes_gpc() and !function_exists('wp_magic_quotes')) if(!$forced) return $value;
if($POSTGET_stripslashes_all_done) if(!$forced) return $value;
if(is_string($value)) return stripslashes($value);
if(is_array($value))
foreach($value as $name=>$val)
$value[$name]=POSTGET_stripslashes_deep($val,$forced);
return $value;
}