Filter Функции

Содержание

  • filter_has_var — Checks if variable of specified type exists
  • filter_id — Returns the filter ID belonging to a named filter
  • filter_input_array — Gets multiple variables from outside PHP and optionally filters them
  • filter_input — Gets variable from outside PHP and optionally filters it
  • filter_list — Returns a list of all supported filters
  • filter_var_array — Gets multiple variables and optionally filters them
  • filter_var — Filters a variable with a specified filter

Коментарии

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
Автор:
Below is some code using filter API to restrict access to LAN by IPv4 private address range.

These notes may save someone else a little time:

filter_input_array() is useless for running multiple filters on the same key.
No way to chain or negate filters.

<?php

/* Merciful comment! */
function FILTER_NEGATE_HACK($_){ return (bool)!$_; }

function 
client_is_private_ipv4(){
  return (
filter_input(INPUT_SERVER'REMOTE_ADDR'FILTER_VALIDATE_IPFILTER_FLAG_IPV4) && 
           
FILTER_NEGATE_HACK(filter_input(INPUT_SERVER'REMOTE_ADDR'FILTER_VALIDATE_IPFILTER_FLAG_NO_PRIV_RANGE));
}

if (! 
client_is_private_ipv4()) 
  exit(
'This application is restricted to local network users');

?>
2007-02-02 14:15:38
http://php5.kiev.ua/manual/ru/ref.filter.html
Beware, the FILTER_SANITIZE_STRING flag functions much like strip_tags, so < will get filtered from input regardless of it's actually part of a tag.  We were getting unexepected results with a graphic library we wrote when trying to print < on a dynamic button.  The url came in something like ?string=%3C (<) but after filter ran it was empty.  To get around this, you could use FILTER_UNSAFE_RAW on that one param.
2007-05-08 11:02:22
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

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