<?php function encryptName($name) { $encrypt_name = ''; //判斷是否包含中文字符 if(preg_match("/[\x{4e00}-\x{9fa5}]+/u", $name)) { //按照中文字符計算長度 $len = mb_strlen($name, 'UTF-8'); //echo '中文'; if($len >= 3){ //三個字符或三個字符以上掐頭取尾,中間用*代替 $encrypt_name = mb_substr($name, 0, 1, 'UTF-8') .str_repeat('*',$len-2). mb_substr($name, -1, 1, 'UTF-8'); } elseif($len === 2) { //兩個字符 $encrypt_name = mb_substr($name, 0, 1, 'UTF-8') . '*'; } } else { //按照英文字串計算長度 $len = strlen($name); //echo 'English'; if($len >= 3) { //三個字符或三個字符以上掐頭取尾,中間用*代替 $encrypt_name = substr($name, 0, 1) .str_repeat('*',$len-2). substr($name, -1); } elseif($len === 2) { //兩個字符 $encrypt_name = substr($name, 0, 1) . '*'; } } return $encrypt_name; } echo encryptName('張三').PHP_EOL; echo encryptName('諸葛亮').PHP_EOL; echo encryptName('西門飄雪').PHP_EOL; echo encryptName('Eden').PHP_EOL;
張* 諸*亮 西**雪 E**n