PHP ?? ?? ???? - ??
1. PHP ??? ??????
PHP ??? ??? ??? ?? ??? ??? ???? ???? ????? ? ?????.
??? ?? ?? ?? ???? ????? ???? ????? ?? ?? ? ???????? ??? ?????.
PHP? ?? ??? ??? ???? ? ?? ??? ? ? ??? ???????.
2. ??? ???? ??? ??????
?? ?? ? ??????? ?? ??? ?????. ? ???? ????? ??? ?? ?? ??????(?: ? ???)?? ?????. ??? ???? ??????? ??? ?? ??? ??? ? ? ????.
?? ???? ?? ????? ???!
?? ???? ?? ??? ?????? ?? ?? ? ?????.
???????
???? ??? ??
??
? ??? ???
?? ??
?????? ?? ??
3. ??>
??? ?????? ?? ?? ?? ? ??? ?????.filter_var() - ??? ??? ?? ??? ??????. ??
filter_var_array() - ????? ?? ??? ?? ?? ???
filter_input - ?? ?? ???? ? ???
filter_input_array - ?? ?? ??? ??? ????? ?? ??? ??????.
?? ???? filter_var() ??? ???? ??? ?????. ??? ??? ????. ??<?php $int = 12443633; //驗證一個數(shù)是不是整數(shù) if(!filter_var($int, FILTER_VALIDATE_INT)) { echo("不是一個合法的整數(shù)"); } else { echo("是個合法的整數(shù)"); } ?>??? ??? ??? ?????
??: ?? ??? ???? ?? ??? ??? ? ????
4. ?? ? ??
?? ??:
- ??? ??? ???? ? ?????.
- ??? ?? ?? ??(?: URL ?? ??? ??)
- ???? ?? ??? ????, ???? FALSE? ?????.
- ???? ? ?????. ?? ????? ??? ??? ?????
- ??? ?? ?? ??
- ?? ???? ?????
5. ?? ? ???
?? ? ???? ?? ??? ??? ???? ? ?????. ???? ??? ???? ????. ?? ???? "min_range" ? "max_range" ??? ?? filter_var()? ???? ??? ???? ?????. ??? ??? ????<?php $var=300; $int_options = array( "options"=>array ( "min_range"=>0, "max_range"=>256 ) ); if(!filter_var($var, FILTER_VALIDATE_INT, $int_options)) { echo("不是一個合法的整數(shù)"); } else { echo("是個合法的整數(shù)"); } ?>
?? ???? ??? "options"?? ?? ??? ??? ???. ???? ???? ?? ??? ?? ??? ????.
??? "300"??? ??? ?? ?? ?? ???? ? ??? ??? ??? ????.
?(?) ??? ??? ????.
?? ? ??? ?? ??? ??? PHP ???? ?????.
6. ?? ??? ??
Let's ???? ?? ???? ??? ???.
?? ?? ?? ? ?? ?? ?? ?? ???? ????? ???? ????.
?? ?? filter_input() ??? ???? ?? ???? ??????.
?? ???? ?? ?? "email"? PHP ???? ?????.
<?php if(!filter_has_var(INPUT_GET, "email")) { echo("沒有 email 參數(shù)"); } else { if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "不是一個合法的 E-Mail"; } else { echo "是一個合法的 E-Mail"; } } ?>
? ???? "GET" ???? ?? ??? ?? ??(email)? ????.
"GET" ??? "email" ?? ??? ??? ??
?? ??? ??? a?? ?? ??? ??? ??
7. ?? ??
URL? ????? ???? ???????.
?? ??? ?? ?? ?? ???? ????? ???? ????.
?? ?? filter_input() ??? ???? ?? ???? ?????.
?? ???? ?? ?? "url"? PHP ???? ?????.
<?php if(!filter_has_var(INPUT_GET, "url")) { echo("沒有 url 參數(shù)"); } else { $url = filter_input(INPUT_GET, "url", FILTER_SANITIZE_URL); echo $url; } ?>
?? ??:
? ??? "GET" ???? ?? ??? ?? ??(url)? ????.
"GET" ??? "url" ?? ??? ??? ??
? ?? ??? ???? ?? ?????. (??) ??? ??) $url ??? ?????
8. ?? ?? ???
?? ????? ?? ?? ?? ??? ?????. filter_var ?? filter_input ??? ?? ?? ??? ????? filter_var_array ?? 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("年齡必須在 1 到 120 之間。<br>"); } elseif(!$result["email"]) { echo("E-Mail 不合法<br>"); } else { echo("輸入正確"); } ?>
?? ?
?? ? "GET" ???? ?? ??? ? ?? ?? ??(??, ?? ? ???)? ????.
?? ??? ??? ??? ??? ???? ??? ?????. ??? ??
? ?? ??? filter_input_array() ??? ???? ?????? GET ?? ??? ???? ?? ??? ???
" $result ?? " ? "email" ??? age? ??? ??? ????. (??? ??? ?? ?? filter_input_array() ?? ?? ? ?? ??? FALSE???.)
filter_input_array() ??? ? ?? ????? ????? ?? ??? ID? ? ????.
????? ?? ??? ID? ?? ??? ??? ?? ??? ?? ?? ??????.
????? ??? ?? ??? ?? ??? ??? ???.
? ??? ?? ?? ??(?: "age")? ???? ?? ????? ???. " ?? ?? )
? ??? ?? ??? ID??? ??, ??? ? ??? ???? ????? ???
9. ?? ?? ??
FILTER_CALLBACK ??? ???? ??? ?? ??? ???? ??? ??? ? ????. ??? ???? ??? ??? ???? ???? ??? ? ????.
???? ?? ??? ???? ?? PHP ??? ??? ? ????.
??? ??? ?? ??? ?? ??? ??? ??? ?????. ??? "options"? ?? ????.
?? ???? ??? ?? ??? ???? ?? "_"? ???? ?????.
<?php function convertSpace($string) { return str_replace("_", ".", $string); } $string = "www_php_cn!"; echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace")); ?>
?? ??? ???? ?????
? ??
?? ?? "_"? ?? "."? ?????.
"_"? "."?? ??? ??? ????.
- filter_var() ??? ?????. ?? ????? FILTER_CALLBACK ??? ??? ??? ?????.