Функция add_magic_quotes()
в WordPress используется для экранирования специальных символов (например, одинарных и двойных кавычек, а также обратного слэша) во всех значениях массива. Это особенно полезно при подготовке данных для базы данных или работы с пользовательским вводом. add_magic_quotes()
рекурсивно обрабатывает вложенные массивы, чтобы гарантировать корректное экранирование.
add_magic_quotes( array $input_array ): array
Параметры
$input_array
(обязательный): Массив, элементы которого необходимо экранировать.
Возвращаемое значение
Массив с экранированными значениями, где каждый элемент обработан функцией addslashes()
.
Основные особенности функции add_magic_quotes()
Функция add_magic_quotes()
работает аналогично addslashes()
и рекурсивно обрабатывает многомерные массивы. В отличие от wp_slash()
, она поддерживает только массивы и предназначена исключительно для экранирования символов, что делает её полезной для подготовки данных к безопасному хранению.
Пример 1: Экранирование кавычек и слэшей
$array = array(
"Одинарные кавычки - '",
array('Вложенный элемент, двойные кавычки - "'),
'Символ слэша - \\ текст'
);
$new_array = add_magic_quotes($array);
print_r($new_array);
Результат:
Array
(
[0] => Одинарные кавычки - \'
[1] => Array
(
[0] => Вложенный элемент, двойные кавычки - \"
)
[2] => Символ слэша - \\ текст
)
В этом примере видно, что каждый элемент массива, включая вложенные, был обработан: одинарные и двойные кавычки, а также обратный слэш были экранированы.
Пример 2: Экранирование в многомерном массиве
$data = array(
"Пример строки с 'кавычками'",
"Другой пример с \"двойными кавычками\"",
array(
"Вложенная строка с \\ слэшем",
"Комбинированный 'текст' с \"разными\" символами"
)
);
$sanitized_data = add_magic_quotes($data);
print_r($sanitized_data);
Результат:
Array
(
[0] => Пример строки с \'кавычками\'
[1] => Другой пример с \"двойными кавычками\"
[2] => Array
(
[0] => Вложенная строка с \\ слэшем
[1] => Комбинированный \'текст\' с \"разными\" символами
)
)
В данном примере каждый элемент, включая вложенные массивы, был обработан для корректного экранирования кавычек и слэшей.
Пример 3: Экранирование специальных символов
$special_chars = array(
"Кавычки ' и \"",
"Символ слэша \\",
array(
"Смешанный набор: ' и \" и \\"
)
);
$escaped_array = add_magic_quotes($special_chars);
print_r($escaped_array);
Результат:
Array
(
[0] => Кавычки \' и \"
[1] => Символ слэша \\
[2] => Array
(
[0] => Смешанный набор: \' и \" и \\
)
)
Здесь видно, что add_magic_quotes()
обрабатывает кавычки и слэш в каждом элементе, включая вложенные массивы, гарантируя, что все специальные символы безопасно экранированы.
Заключение
Функция add_magic_quotes()
полезна для безопасной обработки данных перед их использованием, особенно когда работа ведется с многомерными массивами и пользовательским вводом. Эта функция делает экранирование данных максимально простым и защищает от потенциальных уязвимостей, связанных с неправильной обработкой специальных символов.