ホームページ  >  記事  >  バックエンド開発  >  PHP開発例の公開メソッド【詳細コード解説】

PHP開発例の公開メソッド【詳細コード解説】

眼眸间的深情
眼眸间的深情オリジナル
2021-08-04 19:07:011655ブラウズ

私たちが PHP 開発の現場に足を踏み入れたとき、私たちは常に自問し、学び続け、要約し続ける必要があります。そうすることによってのみ、PHP 開発の道をさらに前進することができます。個人的な開発の例として、初心者のパートナーが開発プロセス中に開発実践活動をより迅速に実行できるようにするための、一般的な公開メソッドをいくつかまとめました。パブリック メソッド 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 暗号化: 使用シナリオ:

フロントエンド パスワード マッチング設定ルールまたはバックエンド パスワード マッチング ルールの再暗号化による他のハッカーの防止一般的なパスワードの使用を禁止 照合メカニズムは、Web サイトのシャットダウンなどのタスクを実行します。 コード表示:

/**
 * 公共方法
 * 优化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. 携帯電話番号が正しいことを確認します:

#使用シナリオ:

ユーザーが Web サイトを登録するときに、ユーザーが入力した携帯電話番号が正しいかどうかを確認します。これにより、バックエンド スタッフによる後のデータのメンテナンスが容易になります。 コード表示:

/**
* 验证手机号是否正确
* @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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。