>  기사  >  백엔드 개발  >  PHP 개발 예제의 공개 메소드 [자세한 코드 설명]

PHP 개발 예제의 공개 메소드 [자세한 코드 설명]

眼眸间的深情
眼眸间的深情원래의
2021-08-04 19:07:011653검색

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으로 문의하세요.