PHP ¹ýÂËÆ÷£¨Filter£©

PHP ¹ýÂËÆ÷ÓÃÓÚÑéÖ¤ºÍ¹ýÂËÀ´×Էǰ²È«À´Ô´µÄÊý¾Ý£¬±ÈÈçÓû§µÄÊäÈë¡£

ʲôÊÇ PHP ¹ýÂËÆ÷£¿

PHP ¹ýÂËÆ÷ÓÃÓÚÑéÖ¤ºÍ¹ýÂËÀ´×Էǰ²È«À´Ô´µÄÊý¾Ý¡£

ÑéÖ¤ºÍ¹ýÂËÓû§ÊäÈë»ò×Ô¶¨ÒåÊý¾ÝÊÇÈκΠWeb Ó¦ÓóÌÐòµÄÖØÒª×é³É²¿·Ö¡£

Éè¼Æ PHP µÄ¹ýÂËÆ÷À©Õ¹µÄÄ¿µÄÊÇʹÊý¾Ý¹ýÂ˸üÇáËÉ¿ì½Ý¡£

ΪʲôʹÓùýÂËÆ÷£¿

¼¸ºõËùÓÐ web Ó¦ÓóÌÐò¶¼ÒÀÀµÍⲿµÄÊäÈë¡£ÕâЩÊý¾Ýͨ³£À´×ÔÓû§»òÆäËûÓ¦ÓóÌÐò£¨±ÈÈç web ·þÎñ£©¡£Í¨¹ýʹÓùýÂËÆ÷£¬ÄúÄܹ»È·±£Ó¦ÓгÌÐò»ñµÃÕýÈ·µÄÊäÈëÀàÐÍ¡£

ÄúÓ¦¸ÃʼÖÕ¶ÔÍⲿÊý¾Ý½øÐйýÂË£¡

ÊäÈë¹ýÂËÊÇ×îÖØÒªµÄÓ¦ÓóÌÐò°²È«¿ÎÌâÖ®Ò»¡£

ʲôÊÇÍⲿÊý¾Ý£¿

  • À´×Ô±íµ¥µÄÊäÈëÊý¾Ý
  • Cookies
  • ·þÎñÆ÷±äÁ¿
  • Êý¾Ý¿â²éѯ½á¹û

º¯ÊýºÍ¹ýÂËÆ÷

ÈçÐè¹ýÂ˱äÁ¿£¬ÇëʹÓÃÏÂÃæµÄ¹ýÂËÆ÷º¯ÊýÖ®Ò»£º

  • filter_var() - ͨ¹ýÒ»¸öÖ¸¶¨µÄ¹ýÂËÆ÷À´¹ýÂ˵¥Ò»µÄ±äÁ¿
  • filter_var_array() - ͨ¹ýÏàͬµÄ»ò²»Í¬µÄ¹ýÂËÆ÷À´¹ýÂ˶à¸ö±äÁ¿
  • filter_input - »ñȡһ¸öÊäÈë±äÁ¿£¬²¢¶ÔËü½øÐйýÂË
  • filter_input_array - »ñÈ¡¶à¸öÊäÈë±äÁ¿£¬²¢Í¨¹ýÏàͬµÄ»ò²»Í¬µÄ¹ýÂËÆ÷¶ÔËüÃǽøÐйýÂË

ÔÚÏÂÃæµÄÀý×ÓÖУ¬ÎÒÃÇÓà filter_var() º¯ÊýÑéÖ¤ÁËÒ»¸öÕûÊý£º

<?php
$int = 123;

if(!filter_var($int, FILTER_VALIDATE_INT))
 {
 echo("Integer is not valid");
 }
else
 {
 echo("Integer is valid");
 }
?>

ÉÏÃæµÄ´úÂëʹÓÃÁË "FILTER_VALIDATE_INT" ¹ýÂËÆ÷À´¹ýÂ˱äÁ¿¡£ÓÉÓÚÕâ¸öÕûÊýÊǺϷ¨µÄ£¬Òò´Ë´úÂëµÄÊä³öÊÇ£º"Integer is valid"¡£

¼ÙÈçÎÒÃdz¢ÊÔʹÓÃÒ»¸ö·ÇÕûÊýµÄ±äÁ¿£¬ÔòÊä³öÊÇ£º"Integer is not valid"¡£

ÈçÐèÍêÕûµÄº¯ÊýºÍ¹ýÂËÆ÷ÁÐ±í£¬Çë·ÃÎÊÎÒÃÇµÄ PHP Filter ²Î¿¼Êֲᡣ

Validating ºÍ Sanitizing

ÓÐÁ½ÖÖ¹ýÂËÆ÷£º

Validating ¹ýÂËÆ÷£º

  • ÓÃÓÚÑéÖ¤Óû§ÊäÈë
  • ÑϸñµÄ¸ñʽ¹æÔò£¨±ÈÈç URL »ò E-Mail ÑéÖ¤£©
  • Èç¹û³É¹¦Ôò·µ»ØÔ¤ÆÚµÄÀàÐÍ£¬Èç¹ûʧ°ÜÔò·µ»Ø FALSE

Sanitizing ¹ýÂËÆ÷£º

  • ÓÃÓÚÔÊÐí»ò½ûÖ¹×Ö·û´®ÖÐÖ¸¶¨µÄ×Ö·û
  • ÎÞÊý¾Ý¸ñʽ¹æÔò
  • ʼÖÕ·µ»Ø×Ö·û´®

Ñ¡ÏîºÍ±êÖ¾

Ñ¡ÏîºÍ±êÖ¾ÓÃÓÚÏòÖ¸¶¨µÄ¹ýÂËÆ÷Ìí¼Ó¶îÍâµÄ¹ýÂËÑ¡Ïî¡£

²»Í¬µÄ¹ýÂËÆ÷Óв»Í¬µÄÑ¡ÏîºÍ±êÖ¾¡£

ÔÚÏÂÃæµÄÀý×ÓÖУ¬ÎÒÃÇÓà filter_var() ºÍ "min_range" ÒÔ¼° "max_range" Ñ¡ÏîÑéÖ¤ÁËÒ»¸öÕûÊý£º

<?php
$var=300;

$int_options = array(
"options"=>array
 (
 "min_range"=>0,
 "max_range"=>256
 )
);

if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
 {
 echo("Integer is not valid");
 }
else
 {
 echo("Integer is valid");
 }
?>

¾ÍÏñÉÏÃæµÄ´úÂëÒ»Ñù£¬Ñ¡Ïî±ØÐë·ÅÈëÒ»¸öÃûΪ "options" µÄÏà¹ØÊý×éÖС£Èç¹ûʹÓñêÖ¾£¬Ôò²»ÐèÔÚÊý×éÄÚ¡£

ÓÉÓÚÕûÊýÊÇ "300"£¬Ëü²»ÔÚÖ¸¶¨µÄ·¶Î§ÄÚ£¬ÒÔÉÏ´úÂëµÄÊä³ö½«ÊÇ "Integer is not valid"¡£

ÈçÐèÍêÕûµÄº¯Êý¼°¹ýÂËÆ÷ÁÐ±í£¬Çë·ÃÎÊ W3School ÌṩµÄ PHP Filter ²Î¿¼ÊֲᡣÄú¿ÉÒÔ¿´µ½Ã¿¸ö¹ýÂËÆ÷µÄ¿ÉÓÃÑ¡ÏîºÍ±êÖ¾¡£

ÑéÖ¤ÊäÈë

ÈÃÎÒÃÇÊÔ×ÅÑéÖ¤À´×Ô±íµ¥µÄÊäÈë¡£

ÎÒÃÇÐèÒª×÷µÄµÚÒ»¼þÊÂÇéÊÇÈ·ÈÏÊÇ·ñ´æÔÚÎÒÃÇÕýÔÚ²éÕÒµÄÊäÈëÊý¾Ý¡£

È»ºóÎÒÃÇÓà filter_input() º¯Êý¹ýÂËÊäÈëµÄÊý¾Ý¡£

ÔÚÏÂÃæµÄÀý×ÓÖУ¬ÊäÈë±äÁ¿ "email" ±»´«µ½ PHP Ò³Ãæ£º

<?php
if(!filter_has_var(INPUT_GET, "email"))
 {
 echo("Input type does not exist");
 }
else
 {
 if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
  {
  echo "E-Mail is not valid";
  }
 else
  {
  echo "E-Mail is valid";
  }
 }
?>

Àý×Ó½âÊÍ£º

ÉÏÃæµÄÀý×ÓÓÐÒ»¸öͨ¹ý "GET" ·½·¨´«Ë͵ÄÊäÈë±äÁ¿ (email)£º

  1. ¼ì²âÊÇ·ñ´æÔÚ "GET" ÀàÐ굀 "email" ÊäÈë±äÁ¿
  2. Èç¹û´æÔÚÊäÈë±äÁ¿£¬¼ì²âËüÊÇ·ñÊÇÓÐЧµÄÓʼþµØÖ·

¾»»¯ÊäÈë

ÈÃÎÒÃÇÊÔ×ÅÇåÀíÒ»ÏÂ´Ó±íµ¥´«À´µÄ URL¡£

Ê×ÏÈ£¬ÎÒÃÇҪȷÈÏÊÇ·ñ´æÔÚÎÒÃÇÕýÔÚ²éÕÒµÄÊäÈëÊý¾Ý¡£

È»ºó£¬ÎÒÃÇÓà filter_input() º¯ÊýÀ´¾»»¯ÊäÈëÊý¾Ý¡£

ÔÚÏÂÃæµÄÀý×ÓÖУ¬ÊäÈë±äÁ¿ "url" ±»´«µ½ PHP Ò³Ãæ£º

<?php
if(!filter_has_var(INPUT_POST, "url"))
 {
 echo("Input type does not exist");
 }
else
 {
 $url = filter_input(INPUT_POST, "url", FILTER_SANITIZE_URL);
 }
?>

Àý×Ó½âÊÍ£º

ÉÏÃæµÄÀý×ÓÓÐÒ»¸öͨ¹ý "POST" ·½·¨´«Ë͵ÄÊäÈë±äÁ¿ (url)£º

  1. ¼ì²âÊÇ·ñ´æÔÚ "POST" ÀàÐ굀 "url" ÊäÈë±äÁ¿
  2. Èç¹û´æÔÚ´ËÊäÈë±äÁ¿£¬¶ÔÆä½øÐо»»¯£¨É¾³ý·Ç·¨×Ö·û£©£¬²¢½«Æä´æ´¢ÔÚ $url ±äÁ¿ÖÐ

¼ÙÈçÊäÈë±äÁ¿ÀàËÆÕâÑù£º"http://www.W3·Ço·¨ol.com.c×Ö·ûn/"£¬Ôò¾»»¯ºóµÄ $url ±äÁ¿Ó¦¸ÃÊÇÕâÑùµÄ£º

http://www.W3School.com.cn/

¹ýÂ˶à¸öÊäÈë

±íµ¥Í¨³£Óɶà¸öÊäÈë×Ö¶Î×é³É¡£ÎªÁ˱ÜÃâ¶Ô filter_var »ò filter_input ÖØ¸´µ÷Óã¬ÎÒÃÇ¿ÉÒÔʹÓà filter_var_array »ò the filter_input_array º¯Êý¡£

ÔÚ±¾ÀýÖУ¬ÎÒÃÇʹÓà filter_input_array() º¯ÊýÀ´¹ýÂËÈý¸ö GET ±äÁ¿¡£½ÓÊÕµ½µÄ GET ±äÁ¿ÊÇÒ»¸öÃû×Ö¡¢Ò»¸öÄêÁäÒÔ¼°Ò»¸öÓʼþµØÖ·£º

<?php
$filters = array
 (
 "name" => array
  (
  "filter"=>FILTER_SANITIZE_STRING
  ),
 "age" => array
  (
  "filter"=>FILTER_VALIDATE_INT,
  "options"=>array
   (
   "min_range"=>1,
   "max_range"=>120
   )
  ),
 "email"=> FILTER_VALIDATE_EMAIL,
 );

$result = filter_input_array(INPUT_GET, $filters);

if (!$result["age"])
 {
 echo("Age must be a number between 1 and 120.<br />");
 }
elseif(!$result["email"])
 {
 echo("E-Mail is not valid.<br />");
 }
else
 {
 echo("User input is valid");
 }
?>

Àý×Ó½âÊÍ£º

ÉÏÃæµÄÀý×ÓÓÐÈý¸öͨ¹ý "GET" ·½·¨´«Ë͵ÄÊäÈë±äÁ¿ (name, age and email)

  1. ÉèÖÃÒ»¸öÊý×飬ÆäÖаüº¬ÁËÊäÈë±äÁ¿µÄÃû³Æ£¬ÒÔ¼°ÓÃÓÚÖ¸¶¨µÄÊäÈë±äÁ¿µÄ¹ýÂËÆ÷
  2. µ÷Óà filter_input_array º¯Êý£¬²ÎÊý°üÀ¨ GET ÊäÈë±äÁ¿¼°¸Õ²ÅÉèÖõÄÊý×é
  3. ¼ì²â $result ±äÁ¿ÖÐµÄ "age" ºÍ "email" ±äÁ¿ÊÇ·ñÓзǷ¨µÄÊäÈë¡££¨Èç¹û´æÔÚ·Ç·¨ÊäÈ룬£©

filter_input_array() º¯ÊýµÄµÚ¶þ¸ö²ÎÊý¿ÉÒÔÊÇÊý×é»òµ¥Ò»¹ýÂËÆ÷µÄ ID¡£

Èç¹û¸Ã²ÎÊýÊǵ¥Ò»¹ýÂËÆ÷µÄ ID£¬ÄÇôÕâ¸öÖ¸¶¨µÄ¹ýÂËÆ÷»á¹ýÂËÊäÈëÊý×éÖÐËùÓеÄÖµ¡£

Èç¹û¸Ã²ÎÊýÊÇÒ»¸öÊý×飬ÄÇô´ËÊý×鱨Ðë×ñÑ­ÏÂÃæµÄ¹æÔò£º

  • ±ØÐëÊÇÒ»¸ö¹ØÁªÊý×飬ÆäÖаüº¬µÄÊäÈë±äÁ¿ÊÇÊý×éµÄ¼ü£¨±ÈÈç "age" ÊäÈë±äÁ¿£©
  • ´ËÊý×éµÄÖµ±ØÐëÊǹýÂËÆ÷µÄ ID £¬»òÕßÊǹ涨Á˹ýÂËÆ÷¡¢±êÖ¾ÒÔ¼°Ñ¡ÏîµÄÊý×é

ʹÓà Filter Callback

ͨ¹ýʹÓà FILTER_CALLBACK ¹ýÂËÆ÷£¬¿ÉÒÔµ÷ÓÃ×Ô¶¨ÒåµÄº¯Êý£¬°ÑËü×÷Ϊһ¸ö¹ýÂËÆ÷À´Ê¹Óá£ÕâÑù£¬ÎÒÃǾÍÓµÓÐÁËÊý¾Ý¹ýÂ˵ÄÍêÈ«¿ØÖÆÈ¨¡£

Äú¿ÉÒÔ´´½¨×Ô¼ºµÄ×Ô¶¨Ò庯Êý£¬Ò²¿ÉÒÔʹÓÃÒÑÓÐµÄ PHP º¯Êý¡£

¹æ¶¨Äú×¼±¸Óõ½¹ýÂËÆ÷º¯ÊýµÄ·½·¨£¬Óë¹æ¶¨Ñ¡ÏîµÄ·½·¨Ïàͬ¡£

ÔÚÏÂÃæµÄÀý×ÓÖУ¬ÎÒÃÇʹÓÃÁËÒ»¸ö×Ô¶¨ÒåµÄº¯Êý°ÑËùÓÐ "_" ת»»Îª¿Õ¸ñ£º

<?php
function convertSpace($string)
{
return str_replace("_", " ", $string);
}

$string = "Peter_is_a_great_guy!";

echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace"));
?>

ÒÔÉÏ´úÂëµÄ½á¹ûÊÇÕâÑùµÄ£º

Peter is a great guy!

Àý×Ó½âÊÍ£º

ÉÏÃæµÄÀý×Ó°ÑËùÓÐ "_" ת»»³É¿Õ¸ñ£º

  1. ´´½¨Ò»¸ö°Ñ "_" Ìæ»»Îª¿Õ¸ñµÄº¯Êý
  2. µ÷Óà filter_var() º¯Êý£¬ËüµÄ²ÎÊýÊÇ FILTER_CALLBACK ¹ýÂËÆ÷ÒÔ¼°°üº¬ÎÒÃǵĺ¯ÊýµÄÊý×é
VUE