Проверка белого списка символов PHP БЕЗ preg_replace или regex

Я пишу простое веб-приложение для создания отчетов, которое принимает только небольшое количество символов.

Я читал, что preg_replace отрицательно влияет на производительность.

Это проблема, потому что я хочу перебрать все $ _POST а также $ _GET переменные для очистки их и некоторые из моих форм имеют много полей.

Есть ли более быстрый способ внесения в белый список?

например:

if(isset($_GET["test_1"]) && isset($_GET["test_2"])){
$white_list = str_split('0123456789
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ .,?@_-');
foreach($_GET as $key => &$val){
$val = array_intersect(str_split($val),$white_list);
$val = implode($val);
}
}

Вы можете видеть, что я допускаю только несколько символов для пунктуации.

Пробел, кажется, работает, когда я тестирую в строке URL.

Я также видел, как люди используют str_replace () после разделения ввода на массив и замены символов на «», если их нет в белом списке.

if(isset($_GET["test_1"]) && isset($_GET["test_2"])){
$white_list = str_split('0123456789
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ .,?@_-');
foreach($_GET as $key => &$val){
$char_list = str_split($val);
foreach($char_list as $c){
if(!in_array($c,$white_list)){
$val = str_replace($c,'',$val);
}
}
}
}

Или что-то типа того.

Есть ли прирост производительности?

Как бы я это проверил.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]