前段時間寫了一篇PHP中關于使用正則表達式來驗證郵箱和IP地址以及URL地址的文章,《php正則表達式驗證手機號,郵箱地址、姓名、身份證號等国产视频app》,雖然正則表達式可以用,但PHP給我們提供了一個很好的的預設函數filter_var(),我們可以種用這個filter_var()函數,很輕松的對郵箱地址,IP地址以及URL進行驗證操作。

PHP filter_var()函數定義

filter_var():函數通過指定的過濾器過濾變量。

如果成功,則返回已過濾的數據,如果失敗,則返回 false。

語法:

filter_var(variable, filter, options);

variable必需。規定要過濾的變量。

filter国产视频app可選。規定要使用的過濾器的 ID。

options規定包含標志/選項的數組。檢查每個過濾器可能的標志和選項。

php filter_var()驗證郵箱地址

$email = '540344537@qq.com';
if(filter_var($email,FILTER_VALIDATE_EMAIL)){
     echo '這是正確的郵箱地址';
}else{
    echo '這不是正確的郵箱地址';
}
//這是正確的郵箱地址
$email = '540344537#qq.com';
if(filter_var($email,FILTER_VALIDATE_EMAIL)){
    echo '這是正確的郵箱地址';
}else{
    echo '這不是正確的郵箱地址';
}
//這不是正確的郵箱地址
$email = '@qq.com';
if(filter_var($email,FILTER_VALIDATE_EMAIL)){
     echo '這是正確的郵箱地址';
}else{
    echo '這不是正確的郵箱地址';
}
//這不是正確的郵箱地址
$email = '墨初@qq.com';
if(filter_var($email,FILTER_VALIDATE_EMAIL)){
     echo '這是正確的郵箱地址';
}else{
    echo '這不是正確的郵箱地址';
}
//這不是正確的郵箱地址

国产视频appPHP中filter_var()函數判斷郵箱地址與正規的判斷有點類似,判斷是否有“@”符號,“@”符號前后是否為純字母或數字

php filter_var()驗證URL地址

$url = 'http://xswdd.cn';
if(filter_var($url,FILTER_VALIDATE_URL)){
     echo '這是正確的URL地址';
}else{
    echo '這個URL地址不正確';
}
//這是正確的URL地址
$url2 = 'http://xxxx';
if(filter_var($url2,FILTER_VALIDATE_URL)){
     echo '這是正確的URL地址';
}else{
    echo '這個URL地址不正確';
}
//這是正確的URL地址
$urls = 'xswdd.cn';
if(filter_var($urls,FILTER_VALIDATE_URL)){
     echo '這是正確的URL地址';
}else{
    echo '這個URL地址不正確';
}
//這個URL地址不正確

通過上面的三段PHP中的filter_var()函數判斷URL地址的代碼可以看出,只要是給的url參數中帶有“http://”的字符串就默認為有效果的URL地址,不管“http://”后面跟的是什么東東。

php filter_var()驗證IP地址

$ip = '192.168.1.1';
if(filter_var($ip,FILTER_VALIDATE_IP)){
     echo '這是正確的IP';
}else{
    echo '這個IP不正確';
}
//'這是正確的IP
$ip2 = '123456789';
if(filter_var($ip2,FILTER_VALIDATE_IP)){
     echo '這是正確的IP';
}else{
    echo '這個IP不正確';
}
//這個IP不正確'

總結:

php filter_var()函數中filter參數的不同,代表不同的過濾形式

国产视频app以上示例代碼所用到的filter參數如下:

国产视频appFILTER_VALIDATE_IP:過濾IP地址

国产视频appFILTER_VALIDATE_URL:過濾URL地址

FILTER_VALIDATE_EMAIL:過濾郵箱地址

filter參數擴展:

国产视频appFILTER_CALLBACK:調用用戶自定義函數來過濾數據。 

FILTER_SANITIZE_STRING:去除標簽,去除或編碼特殊字符。 

国产视频appFILTER_SANITIZE_STRIPPED:"string" 過濾器的別名。 

FILTER_SANITIZE_ENCODED:URL-encode 字符串,去除或編碼特殊字符。 

FILTER_SANITIZE_SPECIAL_CHARS:HTML 轉義字符 '"<>& 以及 ASCII 值小于 32 的字符。 

国产视频appFILTER_SANITIZE_EMAIL:刪除所有字符,除了字母、數字以及 !#$%&'*+-/=?^_`{|}~@.[] 

国产视频appFILTER_SANITIZE_URL:刪除所有字符,除了字母、數字以及 $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&= 

FILTER_SANITIZE_NUMBER_INT:刪除所有字符,除了數字和 +- 

FILTER_SANITIZE_NUMBER_FLOAT:刪除所有字符,除了數字、+- 以及 .,eE。 

FILTER_SANITIZE_MAGIC_QUOTES:應用 addslashes()。 

FILTER_UNSAFE_RAW:不進行任何過濾,去除或編碼特殊字符。 

FILTER_VALIDATE_INT:在指定的范圍以整數驗證值。 

FILTER_VALIDATE_BOOLEAN:如果是 "1", "true", "on" 以及 "yes",則返回 true,如果是 "0", "false", "off", "no" 以及 "",則返回 false。否則返回 NULL。 

国产视频appFILTER_VALIDATE_FLOAT:以浮點數驗證值。 

FILTER_VALIDATE_REGEXP:根據 regexp,兼容 Perl 的正則表達式來驗證值。 

FILTER_VALIDATE_URL:把值作為 URL 來驗證。 

FILTER_VALIDATE_EMAIL:把值作為 e-mail 來驗證。 

FILTER_VALIDATE_IP:把值作為 IP 地址來驗證。