php 中文字串中間部分字元替換操作

2021-10-05 09:53:40 字數 3328 閱讀 9359

一、步驟:1、計算長度

2、根據長度擷取第一部分字串

3、擷取中間部分字串

4、擷取最後一部分字串或者去掉前兩部分字串

5、替換中間部分字串為星號

6、連線字串

二、**編寫:

/**

* 中文字串中間部分替換(最多替換二分之一)

* @param string $username 中文字串

* @return string 處理後的字串

*/function ceshi($username)

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)

三、函式解析

1、mb_strlen()

功能:返回字串的長度。優勢: 可以通過設定字元編碼從而返回對應的字元數,很好的處理了中文字串的長度問題。 

語法:strlen(string $str,string $encoding)

str:字串內容

encoding:編碼格式   比如:gbk/utf8/gb2312/不填不同的編碼格式對於中文來講長度不一樣,預設為utf8

**例項:

$str='33三三three';

echo strlen($str).'

'; //13 數字+中文+英文=2+6+5

echo mb_strlen($str,'utf8').'

';//9 // 數字+中文+英文=2+2+5

echo mb_strlen($str,'gbk').'

';//10 數字+中文+英文=2+3+5

echo mb_strlen($str,'gb2312').'

';//11 數字+中文+英文=2+4+5

2、mb_substr()

功能:返回字串的一部分,優勢:適用於中文字元的分割

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

str:字串內容

start:開始位置   正數 - 在字串的指定位置開始;負數 - 在從字串結尾的指定位置開始;0 - 在字串中的第乙個字元處開始

length:長度  正數 - 從 start 引數所在的位置返回  負數 - 從字串末端返回

encoding:編碼  比如:gbk/utf8/gb2312/不填不同的編碼格式對於中文來講長度不一樣,一般配合mb_strlen使用utf8

注意:1)、如果 start 引數是負數且 length 小於或等於 start,則 length 為 0

2)、一般來說僅使用utf8即可

**例項

$str='33三三three';

echo mb_substr($str,0,3,'utf8').'

'; // 33三三

3、str_repeat()

功能:把字串重複指定次數

語法:str_repeat(string $str,int $repeat )

str:字串

repeat:重複次數

**示例

$str='33三三';

echo str_repeat($str,10).'

'; // 33三三33三三33三三33三三33三三33三三33三三33三三33三三33三三

4、mb_stropos()

功能:查詢字串在另一字串中第一次出現的位置(不區分大小寫)

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

str:原始字串

find:查詢內容

start:開始搜尋位置,預設為0

encoding:編碼格式  預設utf8   通常情況下使用utf8

**示例

$str='33三二一';

echo mb_strpos($str,"一",0).'

'; // 4

echo mb_strpos($str,"一",0,'utf8').'

';// 4

echo mb_strpos($str,"一",0,'gbk').'

';// 5

5、substr_replace()

功能:把字串的一部分替換為另乙個字串

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

str:字串資訊

replacement:需要替換的字串

start:開始位置

length:長度

**示例

echo substr_replace("天氣晚來秋","沉",3,3);  // 天沉晚來秋
注:當為替換漢字時,需要注意乙個漢字三個位元組

php替換字串字元,php如何替換字串裡的字元

php替換字串裡字元的方法 1 通過substr replace函式把字串的一部分替換為另乙個字串 2 使用str replace函式將乙個字串替換字串中的另一些字元。php 字串替換 用於從字串中替換指定字串。str replace 使用乙個字串替換字串中的另一些字元 substr replace...

php 中文字串 危險字串處理

在編輯php時常遇到中文亂碼問題。在此將 php在處理中文時,視為 危險字串 避免 中文亂碼的方法 1.將中文字元進行轉碼。通過 iconv 或 mb convert encoding 兩個方法中的乙個對字串進行編碼處理。2.將中文字串進行替換,將中文替換為其它字串 例如以下方法,將中文替換為 下劃...

php替換字串中,php 字串替換方法

字串替換是開發過程中經常用的資料處理的方式。下面我們就為大家介紹一下php中字元創的替換方法。substr replace 把字串的一部分替換為另乙個字串 str replace 使用乙個字串替換字串中的另一些字元 substr replace substr replace 函式用於把字串的一部分替...