Описание функции rest_sanitize_array()
Функция rest_sanitize_array() используется для очистки и валидации массивов данных в REST API WordPress. Она позволяет безопасно обрабатывать пользовательские данные, удаляя недопустимые значения и обеспечивая соответствие ожидаемым типам данных
Эта функция часто применяется в обработчиках запросов REST API для проверки и подготовки данных перед их использованием
Параметры
$array
Тип: array
Обязательный: Да
По умолчанию: []
Описание: Массив данных, который необходимо санитизировать
Возможные значения:
$allowed_types
Тип: array
Обязательный: Нет
По умолчанию: [‘string’, ‘integer’, ‘boolean’]
Описание: Массив допустимых типов данных для значений в массиве
Возможные значения:
0: string
1: integer
2: boolean
3: array
4: object
Возвращаемое значение
Тип: array
Описание: Санитизированный массив с допустимыми значениями
Возможные значения:
• Массив с очищенными значениями при успешном выполнении
• Пустой массив, если все значения были удалены
• null, если входные данные не являются массивом
Примеры использования
Базовый пример санитизации массива с допустимыми значениями
$data = ['name' => 'John', 'age' => 30];
$sanitized_data = rest_sanitize_array($data);
// $sanitized_data будет ['name' => 'John', 'age' => 30]
Все значения остаются, так как они допустимы
Фильтрация недопустимого значения
$data = ['name' => 'John', 'age' => 'thirty'];
$sanitized_data = rest_sanitize_array($data, ['string', 'integer']);
// $sanitized_data будет ['name' => 'John']
Значение ‘thirty’ удаляется, так как не является допустимым типом
Безопасность
Валидация входных данных: Все значения массива проходят валидацию на соответствие допустимым типам
Санитизация: Функция очищает недопустимые значения из массива
Рекомендации: Обязательно указывайте допустимые типы данных для повышения безопасности
— Связанные функции
Санитизация булевых значений
Санитизация строковых значений
— Хуки
Фильтрует массив перед его возвратом после санитизации
— Примечания
– Ограничения
Не работает с не массивами, возвращает null
– Частые проблемы
- Некорректные типы могут привести к удалению всех значений
- Лишние вложенные массивы могут усложнить обработку