驗證郵箱格式的正確與否;你的第一解決方案是什么呢?
不管你們怎么思考的;反正我首先想到的就是字符串查找看是否有@符號;
但是對於結尾的.com或者.net 亦或者.cn等等越來越多的域名驗證感覺棘手;
直到了某一天認真的研究了filter_var()函數的參數;
我對以前走馬觀花式的閱讀php文檔表示深深的慚愧;
其實filter_var()第二個參數傳FILTER_VALIDATE_EMAIL即可驗證郵箱、略加整理就如下;
/**
* 驗證是否是郵箱
* @param string $email 郵箱
* @return boolean 是否是郵箱
*/
function is_email($email){
if(filter_var($email,FILTER_VALIDATE_EMAIL)){
return true;
}else{
return false;
}
}
var_dump(is_email('baijunyao@baijunyao.com'));
// 打印 ture
var_dump(is_email('baijunyao.com'));
// 打印 false
經研究;這個函數驗證郵箱的規則就是要有個@符號;然后@符號后面還要有個英文句號. ;
咦?看到baijunyao.com;那有木有一個可以驗證url域名的函數?
恩;沒錯;有的;第二個參數傳FILTER_VALIDATE_URL就是用來驗證url的;
/**
* 驗證是否是url
* @param string $url url
* @return boolean 是否是url
*/
function is_url($url){
if(filter_var($url,FILTER_VALIDATE_URL)){
return true;
}else{
return false;
}
}
var_dump(is_url('http://baijunyao.com'));// 打印 true
var_dump(is_url('baijunyao.com'));// 打印 false
var_dump(is_url('http://a'));// 打印 true
根據打印的結果可知;判斷是否是url的規則就是要有http:// 后邊要跟一個字母數字即可;
當然;順理成章;第二個參數傳FILTER_VALIDATE_IP的時候就是驗證是否是ip地址了;
filter_var很強大的樣子;那傳個FILTER_VALIDATE_PHONE 是不是就可以驗證手機號了?
恩恩;;;答案是否定的;你想多了;
別看了;這是做文章封面圖用的;