溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP中怎么實現(xiàn)一個公共方法

發(fā)布時間:2021-08-05 14:17:12 來源:億速云 閱讀:134 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)PHP中怎么實現(xiàn)一個公共方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

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

使用場景:

使用這類公共方法一般都是在后臺進(jìn)行編輯器上傳一些文章的數(shù)據(jù),需要在前端進(jìn)行對應(yīng)的數(shù)據(jù)展示,而有的時候,當(dāng)后臺數(shù)據(jù)過長,前端所展示的空間不足以顯示所有的數(shù)據(jù),這時候多余的部分使用省略號進(jìn)行代替,這樣可以讓前端的數(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ī)則的再次加密,防止其他黑客進(jìn)行通用的密碼匹配機制進(jìn)行網(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ù)的維護(hù)。

代碼展示:

/**
* 驗證手機號是否正確
* @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ù)時的校驗工作,校驗之后可以給用戶進(jìn)行對應(yīng)的反饋信息,幫助用戶進(jìn)行數(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.驗證郵箱是否正確:

使用場景:

用戶注冊或者綁定郵箱信息的時候,需要校驗郵箱的真實有效性,方便后期用戶找回密碼時可以快速有效的收取到對應(yīng)的校驗碼。

代碼展示:

/**
 * 驗證郵箱是否正確
 * @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ù)組:

使用場景:

商城分類通常會使用此方法,可以行之有效的進(jìn)行對商城分類的數(shù)據(jù)讀取和展示工作,方便個人的維護(hù),同時方便了用戶的體驗。

代碼展示:

//遞歸重新排序無限極分類數(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ù)進(jìn)行分快速整合和數(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;

}

看完上述內(nèi)容,你們對PHP中怎么實現(xiàn)一個公共方法有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI