首頁  >  文章  >  後端開發  >  PHP開發實例之公共方法【程式碼詳解】

PHP開發實例之公共方法【程式碼詳解】

眼眸间的深情
眼眸间的深情原創
2021-08-04 19:07:011703瀏覽

當我們踏入PHP開發的行列中的時候,我們就要時刻去要求自己,不斷學習,不斷總結,只有這樣,我們才能在PHP開發的道路上越走越遠,今天呢,就個人開發實例總結了一部分原生的常用公共方法,來讓新手的小夥伴在開發的過程中可以更快的進行開發實踐活動: 

1.使用公共方法msubstr截取中文字串,過長的使用省略號代替:

使用場景:

使用這類公共方法一般都是在後台進行編輯器上傳一些文章的數據,需要在前端進行對應的數據展示,而有的時候,當後台數據過長,前端所展示的空間不足以顯示所有的數據,這時候多餘的部分使用省略號進行代替,這樣可以讓前端的數據展示美觀且簡約,給人一種賞心悅目的感覺。

程式碼展示:

#
/**
 * 截取中文字符串,过长的使用省略号代替
 */
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);//注释内容
    $str = preg_replace("/style=.+?[&#39;|\"]/i",&#39;&#39;,$str);//去除样式  
    $str = preg_replace("/class=.+?[&#39;|\"]/i",&#39;&#39;,$str);//去除样式  
    $str = preg_replace("/id=.+?[&#39;|\"]/i",&#39;&#39;,$str);//去除样式     
    $str = preg_replace("/lang=.+?[&#39;|\"]/i",&#39;&#39;,$str);//去除样式      
    $str = preg_replace("/width=.+?[&#39;|\"]/i",&#39;&#39;,$str);//去除样式   
    $str = preg_replace("/height=.+?[&#39;|\"]/i",&#39;&#39;,$str);//去除样式   
    $str = preg_replace("/border=.+?[&#39;|\"]/i",&#39;&#39;,$str);//去除样式   
    $str = preg_replace("/face=.+?[&#39;|\"]/i",&#39;&#39;,$str);//去除样式   
    $str = preg_replace("/face=.+?[&#39;|\"]/",&#39;&#39;,$str);//去除样式只允许小写正则匹配没有带 i 


    if(function_exists("mb_substr")){
        $slice= mb_substr($str, $start, $length, $charset);
    }elseif(function_exists(&#39;iconv_substr&#39;)) {
        $slice= iconv_substr($str,$start,$length,$charset);
    }else{
        preg_match_all($re[$charset], $str, $match);
        $slice = join("",array_slice($match[0], $start, $length));
    }    
        $fix=&#39;&#39;;
        if(strlen($slice) < strlen($str)){
            $fix=&#39;...&#39;;
        }


        return $suffix ? $slice.$fix : $slice;
}

##2.enctype加密:

使用場景:

前端密碼匹配設定規則或後端密碼匹配規則的再次加密,防止其他駭客進行通用的密碼配對機制進行網站關停等工作。

程式碼展示:

/**
 * 公共方法
 * 优化md5加密:
 */
function enctype($password) {
    return md5($password . C(&#39;MD5_SUFFIX&#39;));
}

注意事項:

C('MD5_SUFFIX')專案為讀取配置的常數"MD5_SUFFIX",常數可自行設定。

3.手機號碼中間4位元替換為*

#使用場景:

#網站上用戶透過手機號碼註冊帳號之後,為了保障用戶的資訊安全,將手機號碼的中間4位替換為*,即可讓手機號碼顯示不全,一定程度上保障了用戶的資訊安全。

程式碼展示:

/**
 * 将手机号中间4位替换为*
 */
function suohao($phone){
 $p = substr($phone,0,3)."****".substr($phone,7,4);
 return $p;
}

4.驗證手機號碼是否正確:

# #使用場景:

用戶註冊網站時校驗使用者填寫的手機號碼是否正確,方便我們後台人員後期對資料的維護。

程式碼展示:

/**
* 验证手机号是否正确
* @author honfei
* @param number $mobile
*/
function isMobile($mobile) {
    if (!is_numeric($mobile)) {
        return false;
    }
    return preg_match(&#39;#^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}$#&#39;, $mobile) ? true : false;
}

#5.驗證輸入的內容是否為純數字:

使用場景:

校驗使用者提交必須為數字項目的參數時的校驗工作,校驗之後可以給使用者進行對應的回饋信息,幫助使用者進行資料提交的有效性。

程式碼展示:

/**
* 验证输入的内容是否为纯数字
* @author wdy
* @param number $mobile
*/
function isNumeric($number) {
    if (!is_numeric($number)) {
        return false;
    }
    return preg_match(&#39;/^\d+$/i&#39;, $number) ? true : false;
}

6.驗證信箱是否正確:##使用場景:

使用者註冊或綁定郵箱資訊的時候,需要校驗信箱的真實有效性,方便後期使用者找回密碼時可以快速有效的收取到對應的校驗碼。

程式碼展示:

/**
 * 验证邮箱是否正确
 * @author wdy
 * @param 18738536986@163.com $email
 */
function isEmail($email){  
    $mode = &#39;/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/&#39;;  
    if(preg_match($mode,$email)){  
        return true;  
    }else{  
        return false;  
    }  
}

7.遞歸重新排序無限極分類數組:

使用場景:

商城分類通常會使用此方法,可以行之有效的進行對商城分類的資料讀取和展示工作,方便個人的維護,同時方便了使用者的體驗。

程式碼顯示:

//递归重新排序无限极分类数组
function recursive($array,$pid=0,$level=0){

//接收传递过来的数组
$arr = array();

foreach ($array as  $value) {

if($value[&#39;pid&#39;] == $pid){

//定义分类级别
$value[&#39;level&#39;] = $level;

//定义分类分隔符号
$value[&#39;html&#39;] = str_repeat(&#39;-&#39;, $level);


//$arr[]来存储$value
$arr[] = $value;


//array_merge():函数把一个或多个数组合并为一个数组。
$arr = array_merge($arr,recursive($array,$value[&#39;id&#39;],$level+1));

}
}

return $arr;

}

#8.取得所有分類子分類的ID:

使用場景:

商城分類的快速讀取,可以對分類資訊資料進行分割快速整合和資料展示,同時方便使用者的快速存取體驗。

程式碼展示:

//获取所有分类子分类的ID
function get_all_child($array, $id){

//定义一个数组
$arr = array();

//循环遍历
foreach ($array as $v) {

//判断pid是否等于id
if ($v[&#39;pid&#39;] == $id) {

//$arr接收所有的id
$arr[] = $v[&#39;id&#39;];

//array_merge():函数把一个或多个数组合并为一个数组。
$arr = array_merge($arr, get_all_child($array, $v[&#39;id&#39;]));

}
}

return $arr;

}

以上是PHP開發實例之公共方法【程式碼詳解】的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn