Фильтрация данных

Содержание

  • filter_has_var — Проверяет существование переменной указанного типа
  • filter_id — Возвращает идентификатор, принадлежащий именованному фильтру
  • filter_input_array — Принимает несколько переменных извне PHP и, при необходимости, фильтрует их
  • filter_input — Принимает переменную извне PHP и, при необходимости, фильтрует ее
  • filter_list — Возвращает список всех поддерживаемых фильтров
  • filter_var_array — Принимает несколько переменных и, при необходимости, фильтрует их
  • filter_var — Фильтрует переменную с помощью определенного фильтра

Коментарии

Just to note that "server and env support may not work in all sapi, for filter 0.11.0 or php 5.2.0" as mentioned in Filter tutorial bellow.

The workaround is obvious:
Instead of 
<?php
$var 
filter_input(INPUT_SERVER'SERVER_NAME'FILTER_DEFAULT);
?>
use
<?php
$var 
filter_var(isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : NULLFILTER_DEFAULT);
?>
2006-12-21 07:13:54
http://php5.kiev.ua/manual/ru/ref.filter.html
Also notice that filter functions are using only the original variable values passed to the script even if you change the value in super global variable ($_GET, $_POST, ...) later in the script.

<?php
echo filter_input(INPUT_GET'var'); // print 'something'
echo $_GET['var']; // print 'something'
$_GET['var'] = 'changed';
echo 
filter_input(INPUT_GET'var'); // print 'something'
echo $_GET['var']; // print 'changed'
?>

In fact, external data are duplicated in SAPI before the script is processed and filter functions don't use super globals anymore (as explained in Filter tutorial bellow, section 'How does it work?').
2006-12-21 08:38:04
http://php5.kiev.ua/manual/ru/ref.filter.html
There is an undocumented filter flag for FILTER_VALIDATE_BOOLEAN. The documentation implies that it will return NULL if the value doesn't match the allowed true/false values. However this doesn't happen unless you give it the FILTER_NULL_ON_FAILURE flag like this:

<?php
$value 
'car';
$result filter_var($valueFILTER_VALIDATE_BOOLEANFILTER_NULL_ON_FAILURE);
?>

In the above $result will equal NULL. Without the extra flag it would equal FALSE, which isn't usually a desired result for this specific filter.
2007-06-13 14:15:15
http://php5.kiev.ua/manual/ru/ref.filter.html
I recommend you to use the FILTER_REQUIRE_SCALAR (or FILTER_REQUIRE_ARRAY) flags, since you can use array-brackets both to access string offsets and array-element -- however, not only this can lead to unexpected behaviour. Look at this example:

<?php
$image 
basename(filter_input(INPUT_GET'src'FILTER_UNSAFE_RAWFILTER_FLAG_STRIP_LOW));
// further checks
?>

/script.php?src[0]=foobar will cause a warning. :-(
Hence my recommendation:

<?php
$image 
basename(filter_input(INPUT_GET'src'FILTER_UNSAFE_RAWFILTER_REQUIRE_SCALAR FILTER_FLAG_STRIP_LOW));
// further checks
?>
2007-08-12 13:54:36
http://php5.kiev.ua/manual/ru/ref.filter.html

    Поддержать сайт на родительском проекте КГБ