函数文档

add_magic_quotes()

💡 云策文档标注

概述

add_magic_quotes() 是一个 WordPress 函数,用于递归遍历数组并对字符串内容进行转义处理。它通过 addslashes() 函数为数组中的字符串添加反斜杠,以增强数据安全性。

关键要点

  • 函数接受一个数组参数 $input_array,并返回经过转义处理的数组。
  • 递归处理嵌套数组,对字符串元素应用 addslashes(),非字符串值保持不变。
  • 主要用于数据清理,例如在 wp_magic_quotes() 中处理 $_GET、$_POST 等超全局变量。

代码示例

function add_magic_quotes( $input_array ) {
	foreach ( (array) $input_array as $k => $v ) {
		if ( is_array( $v ) ) {
			$input_array[ $k ] = add_magic_quotes( $v );
		} elseif ( is_string( $v ) ) {
			$input_array[ $k ] = addslashes( $v );
		}
	}

	return $input_array;
}

注意事项

  • 自 WordPress 5.5.0 起,非字符串值(如整数、布尔值)不再被处理,保持原样。
  • 该函数从版本 0.71 引入,是 WordPress 早期安全机制的一部分,但现代开发中应谨慎使用,因为 magic quotes 特性已过时。

📄 原文内容

Walks the array while sanitizing the contents.

Parameters

$input_arrayarrayrequired
Array to walk while sanitizing contents.

Return

array Sanitized $input_array.

Source

function add_magic_quotes( $input_array ) {
	foreach ( (array) $input_array as $k => $v ) {
		if ( is_array( $v ) ) {
			$input_array[ $k ] = add_magic_quotes( $v );
		} elseif ( is_string( $v ) ) {
			$input_array[ $k ] = addslashes( $v );
		}
	}

	return $input_array;
}

Changelog

Version Description
5.5.0 Non-string values are left untouched.
0.71 Introduced.