1. 程式人生 > >Filter php自帶過濾函式

Filter php自帶過濾函式

PHP Filter 簡介

PHP 過濾器用於對來自非安全來源的資料(比如使用者輸入)進行驗證和過濾。

是一個很有用的方法,但是自己用的很少.所以專門記錄下.以後可以用

基本知識

INPUT_xxx  : 這種表示的是你要校驗的引數是從哪裡獲得的.比如INPUT_GET,那麼方法就會從$_GET中取對應的變數值進行校驗

INPUT_XXX :

INPUT_GET

INPUT_POST

INPUT_COOKIE

INPUT_SERVER

INPUT_ENV

INPUT_SESSION (暫不可以用,應該是預定義出來的,我用的是php7.2.4)

INPUT_REQUEST (暫不可以用,應該是預定義出來的,我用的是php7.2.4)

option,注意這個選項只有當對應的校驗規則符合的情況下才會生效,比如min_ranget只會校驗數字

min_range:最小值,包含這個值

max_range:最大值,包含這個值

default:當校驗不通過的時候的預設值

ucwords:返回的校驗之後的值,首字母大寫

filter_has_var(type, variable)檢查是否存在指定輸入型別的變數

11005865-19d59df1fe986316.png

案例:判斷$_GET中有沒有name這個變數

if (!filter_has_var(INPUT_GET, 'name')){

        throw new Exception('name null');

}

filter_id(filter_name)返回指定過濾器的 ID 號

沒看出有什麼實際的作用.注意這裡的filter_name指的是從filter_list()函式來獲取的過濾器的名稱。

filter_list()返回包含所有得到支援的過濾器的一個數組。

我用php7.2.4獲得下列這些過濾器

int,boolean,float,validate_regexp,validate_domain,validate_url,validate_email,validate_ip,validate_mac

,string,stripped,encoded,special_chars,full_special_chars,unsafe_raw,email,url,number_int,number_float

,magic_quotes,callback

11005865-80ab36683f750ea6.png

需要特別瞭解的是

FILTER_CALLBACK:通過回撥進行校驗

11005865-e0146ec258655d2f.png

注意:在實際使用的時候,對應的常量不是直接比如INT,而是需要加上字首,前面都要加上FILTER_.剩下的後面我還沒有找到規律.之後有再補充

filter_input(input_type, variable, filter, options)從外部獲取輸入,並進行過濾

11005865-2d1d91c6827f7314.png

input_type對應上面的INPUT_XXX

filter的可以上面filter_list()瞭解,這個欄位其實就是指明你要校驗時用的規則

11005865-93b5f85d3ae84ac3.png

校驗郵箱

filter_input_array(input_type, args)從指令碼外部獲取多項輸入,並進行過濾

input_type對應上面的INPUT_XXX

11005865-a042af1a81f3cbfd.png

11005865-043c7213bdb24b56.png

filter_var_array(array, args)獲取多項變數,並進行過濾

11005865-90d9f9d64aa1febd.png

和filter_input_array類似,不同就是直接指定要校驗的引數

$arr =[

"name" => "peter griffin",

"age" => "41",

"email" => "[email protected]",

];

filter_var(variable, filter, options)獲取一個變數,並進行過濾

11005865-ee77ad3cbffcdfeb.png

參考

W3cSchool

相關推薦

Filter php過濾函式

PHP Filter 簡介 PHP 過濾器用於對來自非安全來源的資料(比如使用者輸入)進行驗證和過濾。 是一個很有用的方法,但是自己用的很少.所以專門記錄下.以後可以用 基本知識 INPUT_xxx  : 這種表示的是你要校驗的引數是從哪裡獲得的.比如INPUT_G

過濾和轉義)php過濾和轉義函數

code none 解碼 cap har AD 格式 table 若是 函數名 用途 備註 htmlspecialchars 將與&&、單雙引號‘ "、 大於>、小於<轉成html格式 &&->&

使用PHPzlib函式 幾行程式碼實現PHP檔案打包下載zip

<?php //獲取檔案列表 function list_dir($dir){ $result = array(); if (is_dir($dir)){ $file_dir = scandir($dir); foreach($file_dir

介紹幾個PHP 的加密解密函式

PHP 自帶的加密解密函式 目前經常使用的加密函式有:md5(), sha1(), crypt(), base64_encode(), urlencode() 。 其中 md5(), sha1(), c

PHP函式ip、數字互轉

$ip = '42.62.28.108'; $number = ip2long($ip); 將 IP 轉換成整型數字; $newIp = long2ip($number); 將整型數字轉換成IP; echo $number; echo $newIp;

windows下使用php的mail函式實現簡單的郵件傳送例項(QQ親試成功)

問題: 初學php,打算實現一下找回密碼功能。當然這涉及到不少的問題,我直接想到的是怎麼發郵件的問題,這便是今天要解決的問題了。 查資料: 為解決這個問題,到網上查了很多資料,也看到網上有很多相關的資料,可能是由於鄙人比較笨,試了很多前人的方法,也總還是出現這樣那樣的問題,

php 加密、解密函式

php 自帶的加密函式 不可逆的加密函式為:md5()、crypt()md5() 用來計算 MD5 哈稀。語法為:string md5(string str);crypt() 將字串用 UNIX 的標準加密 DES 模組加密。這是單向的加密函式,無法解密。欲比對字串,將已加密的字串的頭二個字元放在 salt

php的幾個防止sql注入的函式規則

SQL注入攻擊是黑客攻擊網站最常用的手段。如果你的站點沒有使用嚴格的使用者輸入檢驗,那麼常容易遭到SQL注入攻擊。SQL注入攻擊通常通過給站點資料庫提交不良的資料或查詢語句來實現,很可能使資料庫中的紀錄遭到暴露,更改或被刪除。   為了防止SQL注入攻擊,PHP自帶一個功能

php壓縮類壓縮文件夾

tac true pre 失敗 osi alert 關閉 自動 對象傳遞 // 壓縮文件夾 function addFileToZip($path,$zip){ $handler=opendir($path); //打開當前文件夾由$path指定。 whi

php的webServer解析時出現 Invalid request (Unexpected EOF)報錯!

因硬體需求原因,不能安裝更多應用,需使用php作為服務,於是利用php自帶的webserver搞了一個簡單的檔案管理指令碼。 啟動php server命令: php -S 127.0.0.1:8088 start.php 執行中發現Linux/Window 7下控制檯都會報 

對Swoole、Workerman和php的socket的理解

開源項目 局限性 ole 來源 worker 建議 般的 detail 管理 為什麽php自帶的socket不怎麽聽說,基本都是用swoole,workerman去實現? 1、PHP的socket擴展是一套socket api,僅此而已。 swoole,用C實現,它的s

Numpy中sum函式的使用方法(Pythonsum函式

Numpy中sum函式(Python自帶sum函式)的作用是對元素求和。 無參時,所有全加; axis=0,按列相加; axis=1,按行相加; 下邊通過例子來說明其用法: #!/usr/bin/env python # -*- coding:utf-8 -*-

Java實現MD5演算法過程,並利用MD5函式進行對比校驗

文章目錄 一、環境說明 二、演算法原理概述 三、程式設計 資料結構 重要模組步驟 四、執行結果 一、環境說明 作業系統:window10 程式語言:Java (J

PHP方法驗證郵箱、URL、IP是否合法

以前用PHP驗證郵箱、URL、IP是否合法都是通過自己寫正則來實現,但是有時候腦子發昏,可能會寫出一個不是完全正確的正則,導致驗證出錯,今天發現原來PHP本身自帶了驗證郵箱、URL、IP是否合法的函式。 主要使用的是filter_var函式。 語法 filter_var(variable,

matlab學習-使用函式

>> %定義矩陣求最大值>> a=[1 7 3;6 2 9];>> A=max(a);>> a a = 1 7 3 6 2 9 >> A A = 6 7 9 >>     max的返回值是一

matlab svmtrain函式返回值求邊界判別條件(不是libsvm)

    matlab自帶了一個svmtrain函式,這個函式的返回值,和libsvm裡的函式是不一樣的。這裡主要寫一下如何求 w'x + b = 0 裡面的w和b。示例程式碼: clc;   clear;   close all;      traindata = [0 2

GIS演算法(二)運用C#函式繪製五角星和多邊形(C#)

前言: 當我們敲下第一行程式碼向計算機世界說一句—–Hello World 我們就打開了一扇通往計算機世界的大門。 計算機的世界總是充滿著未知和挑戰, 當我們的程式碼第一次出現在漆黑的控制檯; 當我們第一次實現和計算機的互動; 當我們第一次完成自己的

C++sort函式對vector容器元素進行排序

1.包含標頭檔案 #include<algorithm>,然後using namespace std; 2.假如你定義的vector變數為vector<Type> num,則如下

sublime text 3 外掛CodeFormatter 的配置以及MAC上升級php版本到php7

最近換工作後改用mac辦公了,剛上手有點不熟悉,開發環境跟windows還是有點差別的,我做php開發用的sublime text 3,這個IDE好處就是炫,舒服,輕便,壞處就是安裝各種各樣的擴充套件,當然換個角度看這也是一大優點吧,更輕量級,按需要再加,所以我

Unity3D中事件函式的執行順序

在Unity3D指令碼中,有幾個Unity3D自帶的事件函式按照預定的順序執行作為指令碼執行。其執行順序如下: 編輯器(Editor) Reset:Reset函式被呼叫來初始化指令碼屬性當指令碼第一次被附到物件上,並且在Reset命令被使用時也會呼叫。 編者注:Reset是