Использование filter_var для очистки строки - PullRequest
3 голосов
/ 08 декабря 2011

http://www.php.net/manual/en/filter.filters.flags.php

Как я могу использовать эту функцию, чтобы сократить строку до только az, чисел и _?

Ответы [ 2 ]

2 голосов
/ 08 декабря 2011

Видимо, вы не можете. Потому что вы спрашиваете, что на самом деле что-то от 65 до 90 и от 97 до 122. Фильтр удалит символы с числовым значением меньше 32 и больше 127. Вместо этого вы должны использовать регулярное выражение.

2 голосов
/ 08 декабря 2011

Вам придется использовать фильтр обратного вызова и написать свою функцию

function my_filter($value)
{
    return preg_replace('/[^a-z\d_]/iu', '', $value);
}
$var = filter_var($var, FILTER_CALLBACK, array('options' => 'my_filter'));

Если вы хотите, чтобы в фильтруемой переменной вы только строчные буквы, удалите флаг 'i' из регулярного выражения.Конечно, использование filter_var - это просто лишний код.Это короче.

$var = preg_replace('/[^a-z\d_]/iu', '', $var);
...