當我們踏入PHP開發(fā)的行列中的時候,我們就要時刻去要求自己,不斷學習,不斷總結(jié),只有這樣,我們才能在PHP開發(fā)的道路上越走越遠,今天呢,就個人開發(fā)實例總結(jié)了一部分原生的常用公共方法,來讓新手的小伙伴在開發(fā)的過程中可以更快的進行開發(fā)實踐活動:
1.使用公共方法msubstr截取中文字符串,過長的使用省略號代替:
使用場景:
使用這類公共方法一般都是在后臺進行編輯器上傳一些文章的數(shù)據(jù),需要在前端進行對應的數(shù)據(jù)展示,而有的時候,當后臺數(shù)據(jù)過長,前端所展示的空間不足以顯示所有的數(shù)據(jù),這時候多余的部分使用省略號進行代替,這樣可以讓前端的數(shù)據(jù)展示美觀且簡約,給人一種賞心悅目的感覺。
代碼展示:
/** * 截取中文字符串,過長的使用省略號代替 */ function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){ $str = preg_replace("/<a[^>]*>/i", "", $str); $str = preg_replace("/</a>/i", "", $str); $str = preg_replace("/<div[^>]*>/i", "", $str); $str = preg_replace("/</div>/i", "", $str); $str = preg_replace("/<!--[^>]*-->/i", "", $str);//注釋內(nèi)容 $str = preg_replace("/style=.+?['|"]/i",'',$str);//去除樣式 $str = preg_replace("/class=.+?['|"]/i",'',$str);//去除樣式 $str = preg_replace("/id=.+?['|"]/i",'',$str);//去除樣式 $str = preg_replace("/lang=.+?['|"]/i",'',$str);//去除樣式 $str = preg_replace("/width=.+?['|"]/i",'',$str);//去除樣式 $str = preg_replace("/height=.+?['|"]/i",'',$str);//去除樣式 $str = preg_replace("/border=.+?['|"]/i",'',$str);//去除樣式 $str = preg_replace("/face=.+?['|"]/i",'',$str);//去除樣式 $str = preg_replace("/face=.+?['|"]/",'',$str);//去除樣式只允許小寫正則匹配沒有帶 i if(function_exists("mb_substr")){ $slice= mb_substr($str, $start, $length, $charset); }elseif(function_exists('iconv_substr')) { $slice= iconv_substr($str,$start,$length,$charset); }else{ preg_match_all($re[$charset], $str, $match); $slice = join("",array_slice($match[0], $start, $length)); } $fix=''; if(strlen($slice) < strlen($str)){ $fix='...'; } return $suffix ? $slice.$fix : $slice; }
2.enctype加密:
使用場景:
前端密碼匹配設(shè)置規(guī)則或者后端密碼匹配規(guī)則的再次加密,防止其他黑客進行通用的密碼匹配機制進行網(wǎng)站關(guān)停等工作。
代碼展示:
/** * 公共方法 * 優(yōu)化md5加密: */ function enctype($password) { return md5($password . C('MD5_SUFFIX')); }
注意事項:
C('MD5_SUFFIX')項目為讀取配置的常量 "MD5_SUFFIX",常量可自行設(shè)置。
3.將手機號中間4位替換為*
使用場景:
網(wǎng)站上用戶通過手機號注冊賬號之后,為了保障用戶的信息安全,將手機號的中間4位替換為*,即可讓手機號顯示不全,一定程度上保障了用戶的信息安全。
代碼展示:
/** * 將手機號中間4位替換為* */ function suohao($phone){ $p = substr($phone,0,3)."****".substr($phone,7,4); return $p; }
4.驗證手機號是否正確:
使用場景:
用戶注冊網(wǎng)站時校驗用戶填寫的手機號是否正確,方便我們后臺人員后期對數(shù)據(jù)的維護。
代碼展示:
/** * 驗證手機號是否正確 * @author honfei * @param number $mobile */ function isMobile($mobile) { if (!is_numeric($mobile)) { return false; } return preg_match('#^13[d]{9}$|^14[5,7]{1}d{8}$|^15[^4]{1}d{8}$|^17[0,6,7,8]{1}d{8}$|^18[d]{9}$#', $mobile) ? true : false; }
5.驗證輸入的內(nèi)容是否為純數(shù)字:
使用場景:
校驗用戶提交必須為數(shù)字項的參數(shù)時的校驗工作,校驗之后可以給用戶進行對應的反饋信息,幫助用戶進行數(shù)據(jù)提交的有效性。
代碼展示:
/** * 驗證輸入的內(nèi)容是否為純數(shù)字 * @author wdy * @param number $mobile */ function isNumeric($number) { if (!is_numeric($number)) { return false; } return preg_match('/^d+$/i', $number) ? true : false; }
6.驗證郵箱是否正確:
使用場景:
用戶注冊或者綁定郵箱信息的時候,需要校驗郵箱的真實有效性,方便后期用戶找回密碼時可以快速有效的收取到對應的校驗碼。
代碼展示:
/** * 驗證郵箱是否正確 * @author wdy * @param 18738536986@163.com $email */ function isEmail($email){ $mode = '/w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/'; if(preg_match($mode,$email)){ return true; }else{ return false; } }
7.遞歸重新排序無限極分類數(shù)組:
使用場景:
商城分類通常會使用此方法,可以行之有效的進行對商城分類的數(shù)據(jù)讀取和展示工作,方便個人的維護,同時方便了用戶的體驗。
代碼展示:
//遞歸重新排序無限極分類數(shù)組 function recursive($array,$pid=0,$level=0){ //接收傳遞過來的數(shù)組 $arr = array(); foreach ($array as $value) { if($value['pid'] == $pid){ //定義分類級別 $value['level'] = $level; //定義分類分隔符號 $value['html'] = str_repeat('-', $level); //$arr[]來存儲$value $arr[] = $value; //array_merge():函數(shù)把一個或多個數(shù)組合并為一個數(shù)組。 $arr = array_merge($arr,recursive($array,$value['id'],$level+1)); } } return $arr; }
8.獲取所有分類子分類的ID:
使用場景:
商城分類的快速讀取,可以對分類信息數(shù)據(jù)進行分快速整合和數(shù)據(jù)展示,同時方便用戶的快速訪問體驗。
代碼展示:
//獲取所有分類子分類的ID function get_all_child($array, $id){ //定義一個數(shù)組 $arr = array(); //循環(huán)遍歷 foreach ($array as $v) { //判斷pid是否等于id if ($v['pid'] == $id) { //$arr接收所有的id $arr[] = $v['id']; //array_merge():函數(shù)把一個或多個數(shù)組合并為一個數(shù)組。 $arr = array_merge($arr, get_all_child($array, $v['id'])); } } return $arr; }