Heim > Backend-Entwicklung > PHP-Problem > So ersetzen Sie Zwischenzeichenfolgen in PHP

So ersetzen Sie Zwischenzeichenfolgen in PHP

藏色散人
Freigeben: 2023-03-09 19:04:02
Original
2866 Leute haben es durchsucht

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.

So ersetzen Sie Zwischenzeichenfolgen in PHP

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
Nach dem Login kopieren

Ersetzen Teil davon mit einer anderen Zeichenfolge

substr_replace(string,replacement,start,length)
// string必需。规定要检查的字符串。
// replacement必需。规定要插入的字符串。
// start必需。规定在字符串的何处开始替换。
// 正数 - 在字符串中的指定位置开始替换
// 负数 - 在从字符串结尾的指定位置开始替换
// 0 - 在字符串中的第一个字符处开始替换
// length可选。规定要替换多少个字符。默认是与字符串长度相同。
// 正数 - 被替换的字符串长度
// 负数 - 表示待替换的子字符串结尾处距离 string 末端的字符个数。
// 0 - 在字符串中的第一个字符处开始替换
Nach dem Login kopieren
str_repeat
Nach dem Login kopieren

Wiederholen Sie die Zeichenfolge eine bestimmte Anzahl von Malen

mb_strlen
Nach dem Login kopieren

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
Nach dem Login kopieren

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;
}
Nach dem Login kopieren
verwenden

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!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage