Heim  >  Artikel  >  Backend-Entwicklung  >  So ersetzen Sie einen Teil des Inhalts in PHP

So ersetzen Sie einen Teil des Inhalts in PHP

藏色散人
藏色散人Original
2022-11-25 09:27:431639Durchsuche

So ersetzen Sie einen Teil des Inhalts in PHP: 1. Erstellen Sie eine PHP-Beispieldatei. 2. Berechnen Sie die Zeichenfolgenlänge mit „mb_strlen($username,'utf-8');“; Zeichenfolge entsprechend der Länge; 4. Den letzten Teil der Zeichenfolge abfangen oder die ersten beiden Teile der Zeichenfolge entfernen. 5. Ersetzen Sie die Zeichen durch „str_replace_once“.

So ersetzen Sie einen Teil des Inhalts in PHP

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, Dell G3-Computer.

Wie ersetze ich einen Teil des Inhalts in PHP?

php-Vorgang zum Ersetzen des Mittelteils einer Zeichenfolge

1. Berechnen Sie die Länge

2. Fangen Sie den Mittelteil der Zeichenfolge ab 4. Fangen Sie den letzten Teil der Zeichenfolge ab oder entfernen Sie die ersten beiden Teile der Zeichenfolge

5. Ersetzen Sie den mittleren Teil der Zeichenfolge durch ein Sternchen

6. Verketten Sie die Zeichenfolgen

2. Code schreiben:

/**
* 中文字符串中间部分替换(最多替换二分之一)
* @param string $username 中文字符串
* @return string 处理后的字符串
*/
function ceshi($username){
    // 计算字符串长度,无论汉字还是英文字符全部为1
    $length = mb_strlen($username,'utf-8');
    
    // 截取第一部分代码
    $firstStr1 = mb_substr($username,0,ceil($length/4),'utf-8');
    // 截取中间部分代码
    $firstStr = mb_substr($username,ceil($length/4),floor($length/2),'utf-8');
    // (方法一)截取剩余字符串
    $firstStr2 = mb_substr($username,ceil($length/4) + floor($length/2), floor(($length+1)/2 - 1),'utf-8');
    // (方法二)是直接去掉前两部分字符串
    // $firstStr2 = "";
    // if($firstStr && $username){
        // $firstStr2 = str_replace_once($username,$firstStr1,"");
        // $firstStr2 = str_replace_once($firstStr2,$firstStr,"");
    // }
    
    return $firstStr1 . str_repeat("*",mb_strlen($firstStr,'utf-8')) . $firstStr2;
}
 
 
/**
* 替换字符串中的某些字符,仅替换一次,且替换内容必须在原始字符串内
* @param string $username 字符串
* @param string $find 替换内容
* @param string $replace 目标内容
* @param string 处理后的额字符串
*/
function str_replace_once($username,$find,$replace)
{   
    // 查询出字符串第一次出现的位置
    $pos = mb_strpos($username,$find);
    // 替换目标内的信息
    return substr_replace($username, $replace, $pos, strlen($find));
}

3 . Funktionsanalyse

1. mb_strlen()

Funktion: Gibt die Länge der Zeichenfolge zurück. Vorteile: Sie können die Zeichenkodierung so einstellen, dass die entsprechende Anzahl von Zeichen zurückgegeben wird, wodurch das Längenproblem chinesischer Zeichenfolgen gut gelöst wird.

Syntax: strlen(string $str, string $encoding)

str: String-Inhalt

encoding: Codierungsformat Zum Beispiel: gbk/utf8/gb2312/leer lassen Verschiedene Codierungsformate haben unterschiedliche Längen für Chinesisch, Standard für utf8

Codebeispiel:

$str='33三三three';
echo strlen($str).&#39;<br>&#39;;  //13   数字+中文+英文=2+6+5
echo mb_strlen($str,&#39;utf8&#39;).&#39;<br>&#39;;//9 //  数字+中文+英文=2+2+5
echo mb_strlen($str,&#39;gbk&#39;).&#39;<br>&#39;;//10   数字+中文+英文=2+3+5
echo mb_strlen($str,&#39;gb2312&#39;).&#39;<br>&#39;;//11     数字+中文+英文=2+4+5

2, mb_substr()

Funktion: Einen Teil der Zeichenfolge zurückgeben, Vorteil: Geeignet für die Segmentierung chinesischer Schriftzeichen

Syntax: mb_substr ( string $str , int $start , int $length , string $encoding)

str: String-Inhalt

start: Startposition Positive Zahl – beginnt an der angegebenen Position des Strings; negative Zahl – beginnt an der angegebenen Position vom Ende des Strings; 0 – an der ersten Position im Zeichenfolge Beginnt bei Zeichen

Länge: Länge Positive Zahl – zurückgegeben von der Position des Startparameters Negative Zahl – zurückgegeben vom Ende der Zeichenfolge

Kodierung: Kodierung Zum Beispiel: gbk/utf8/gb2312/leer lassen Es gibt verschiedene Kodierungsformate anders für chinesische Länge Anders, verwenden Sie im Allgemeinen utf8 mit mb_strlen

Hinweis: 1). Wenn der Startparameter eine negative Zahl ist und die Länge kleiner oder gleich start ist, beträgt die Länge 0

2). kann verwendet werden. Anzahl der Wiederholungen

Codebeispiel

$str=&#39;33三三three&#39;;
echo mb_substr($str,0,3,&#39;utf8&#39;).&#39;<br>&#39;;  // 33三三

4 , mb_stropos()

Funktion: Finden Sie das erste Vorkommen einer Zeichenfolge in einer anderen Zeichenfolge (ohne Berücksichtigung der Groß-/Kleinschreibung)

Syntax: mb_stropos(string $str,string $find,int $ start,string $encoding )

str: Ursprüngliche Zeichenfolge

find: Inhalt abfragen

start: Suchposition starten, der Standardwert ist 0

encoding: Kodierungsformat Standard utf8 Normalerweise utf8 verwenden

Codebeispiel

$str=&#39;33三三&#39;;
echo str_repeat($str,10).&#39;<br>&#39;;  // 33三三33三三33三三33三三33三三33三三33三三33三三33三三33三三

5, substr_replace()

Funktion: Teil eines Strings durch einen anderen String ersetzen

Syntax: substr_replace(string $str, string $replacement, int $start, int $length)

str: String-Informationen

replacement: muss sein ersetzter String

Start: Startposition

Länge: Länge

Codebeispiel

$str=&#39;33三二一&#39;;
echo mb_strpos($str,"一",0).&#39;<br>&#39;;  //  4
echo mb_strpos($str,"一",0,&#39;utf8&#39;).&#39;<br>&#39;;//  4
echo mb_strpos($str,"一",0,&#39;gbk&#39;).&#39;<br>&#39;;//   5

Hinweis: Beim Ersetzen chinesischer Zeichen müssen Sie auf die drei Bytes eines chinesischen Zeichens achten

Empfohlenes Lernen: „

PHP-Video-Tutorial

"

Das obige ist der detaillierte Inhalt vonSo ersetzen Sie einen Teil des Inhalts in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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