So ersetzen Sie die mittlere Zeichenfolge in PHP: Erstellen Sie zunächst eine PHP-Beispieldatei. Verwenden Sie dann die Methode „public function encodeStr($str){...}“, um die mittlere Zeichenfolge zu ersetzen.
Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer
php ersetzt das Sternchen in der Mitte der Zeichenfolge
Dazu gehören drei Zeichenfolgenverarbeitungsfunktionen
substr_replace
Ersetzen Teil davon mit einer anderen Zeichenfolge
substr_replace(string,replacement,start,length) // string必需。规定要检查的字符串。 // replacement必需。规定要插入的字符串。 // start必需。规定在字符串的何处开始替换。 // 正数 - 在字符串中的指定位置开始替换 // 负数 - 在从字符串结尾的指定位置开始替换 // 0 - 在字符串中的第一个字符处开始替换 // length可选。规定要替换多少个字符。默认是与字符串长度相同。 // 正数 - 被替换的字符串长度 // 负数 - 表示待替换的子字符串结尾处距离 string 末端的字符个数。 // 0 - 在字符串中的第一个字符处开始替换
str_repeat
Wiederholen Sie die Zeichenfolge eine bestimmte Anzahl von Malen
mb_strlen
Gibt die Länge der Zeichenfolge zurück. Anders als bei strlen kann die entsprechende Anzahl von Zeichen zurückgegeben werden, indem die Zeichenkodierung festgelegt wird, was einfach ist handle Es löst das Längenproblem chinesischer Zeichenfolgen
mb_substr
Gibt einen Teil der Zeichenfolge zurück, ähnlich der Funktion substr(). Es zielt nur auf englische Zeichen ab. Wenn Sie chinesischen Text aufteilen möchten, müssen Sie mb_substr()
/** * 加密字符串 * addtime 2020年8月18日 14:16:44 * @param [type] $str 待加密的字符串 * @return void */ public function encodeStr($str) { # 判断字符串长度 $length = strlen($str); if ($length == 1) { # 长度为 1 前后拼接 * 号 $newStr = $str.'*'.rand(1,6); }else{ # 长度超过1随机插入 * 号 $newStr = substr_replace($str,str_repeat('*',$length/2),ceil($length/2),$length).mb_substr($str,$length-2,$length,"utf-8"); // str_repeat('*',$length/2) 星号重复字符长度的一半长度 // ceil($length/2) 算出从第几个字符开始 } return $newStr; }
Empfohlenes Lernen: „PHP-Video-Tutorial》
Das obige ist der detaillierte Inhalt vonSo ersetzen Sie Zwischenzeichenfolgen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!