実際の開発プロセスでは、ユーザーに敏感な情報(ID番号、携帯電話番号など)の処理は非常に重要なプライバシー保護リンクです。この情報を表示するとき、ユーザーのプライバシーの漏れを避けるために、いくつかの機密コンテンツを脱色できることを願っています。この記事では、PHPでMB_EREGI_REPLACE関数を使用する方法を紹介して、ワンクリック脱感作を実装します。
MB_EREGI_REPLACEは、PHPのマルチバイト文字列関数であり、文字列でケース感受性の正規表現置換を実行するために使用されます。 UTF-8などのマルチバイトエンコードをサポートします。これは、中国語などのマルチバイトキャラクターの処理に非常に適しています。
携帯電話番号とID番号を例にとると、脱感作の一般的な方法は次のとおりです。
携帯電話番号:たとえば、13812345678の脱感作は138 **** 5678です。
ID番号:ミドル10桁を非表示にします。たとえば、110105199001011234脱感作は1101 ************ 1234です
MB_EREGI_REPLACEを使用して脱感作を実装するPHPコードの例を次に示します。
<?php
// 脱色携帯電話番号
function mask_mobile($mobile) {
// 携帯電話番号形式を一致させます,中央を交換します4位置はです****
return mb_eregi_replace('(\d{3})\d{4}(\d{4})', '$1****$2', $mobile);
}
// 脱感作ID番号
function mask_idcard($idcard) {
// ID番号を一致させます,中央を交換します10位置はです**********
return mb_eregi_replace('(\d{4})\d{10}(\d{4})', '$1**********$2', $idcard);
}
// テスト
$mobile = '13812345678';
$idcard = '110105199001011234';
echo "元の携帯電話番号:$mobile\n";
echo "脱色携帯電話番号:" . mask_mobile($mobile) . "\n";
echo "元のID番号:$idcard\n";
echo "脱感作ID番号:" . mask_idcard($idcard) . "\n";
?>
正規表現の(\ d {3})および(\ d {4})は、キャプチャ前後の数値のグループ化を表します。
交換部品では、1ドルと2ドルを使用してキャプチャグループを参照しているため、開始数とエンド数を保持し、中央を*に置き換えます。
MB_EREGI_REPLACEはケースインスセンシティブであり、複数のエンコードされたテキストの処理に適したマルチバイト文字をサポートしています。
ビジネスのニーズに応じて、電子メール、銀行カード番号など、他の機密情報で同様の処理を実行することも、正規表現を調整することもできます。
より多くのPHP文字列処理のヒントについては、次のリソースにアクセスできます。
$url = 'https://m66.net/php-string-functions.html';
echo "詳細なチュートリアルをご覧ください:$url";