ホームページ  >  記事  >  バックエンド開発  >  PHPの内容の一部を置き換える方法

PHPの内容の一部を置き換える方法

藏色散人
藏色散人オリジナル
2022-11-25 09:27:431588ブラウズ

php メソッドでコンテンツの一部を置き換えます: 1. php サンプル ファイルを作成します; 2. "mb_strlen($username,'utf-8');" を通じて文字列の長さを計算します; 3. 最初の文字列をインターセプトします文字列の長さに応じた部分; 4. 文字列の最後の部分をインターセプトするか、文字列の最初の 2 つの部分を削除します; 5. 「str_replace_once」によって文字を置換します。

PHPの内容の一部を置き換える方法

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、Dell G3 コンピューター。

php のコンテンツの一部を置き換えるにはどうすればよいですか?

php 中国語文字列の中間部分の文字置換操作

1. 手順: 1. 長さを計算します

2. 文字列の最初の部分を次のようにインターセプトします。 length

3. 文字列の中間部分をインターセプト

4. 文字列の最後の部分をインターセプトするか、文字列の最初の 2 つの部分を削除します

5.アスタリスクが付いた文字列の中央部分

6. 接続文字列

2. コードの記述:

/**
* 中文字符串中间部分替换(最多替换二分之一)
* @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. 関数分析

1. mb_strlen( )

関数: 戻り文字 文字列の長さ。利点: 対応する文字数を返すように文字エンコーディングを設定できるため、中国語の文字列の長さの問題がうまく解決されます。

構文: strlen(string $str, string $encoding)

str: 文字列の内容

encoding: エンコード形式 例: gbk/utf8/gb2312/leave空白 異なる 中国語ではエンコード形式の長さが異なり、デフォルトは utf8

コード例:

$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()

関数: 文字列の一部を返す、利点 : 中国語の文字の分割に適しています

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

str: String content

start: 開始位置 正の数 - 文字列の指定した位置から開始; 負の数 - 文字列の末尾からの指定した位置から開始; 0 - 文字列の最初の文字から開始

length: 長さ 正の数値 - 開始パラメータの位置から返される 負の数値 - 文字列の末尾から返される

encoding: エンコーディング 例: gbk/utf8/gb2312/leaveblank エンコーディング形式が異なると長さも異なります中国語の場合、通常は mb_strlen と組み合わせます utf8

を使用します注: 1) start パラメータが負の数で、長さが start 以下の場合、長さは 0

2)一般的には、utf8

コード例

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

3 を使用してください。 str_repeat()

関数: 文字列を指定された回数だけ繰り返します

構文: str_repeat(string $str,int $repeat)

str:String

repeat:繰り返し数

コード例

$str=&#39;33三三&#39;;
echo str_repeat($str,10).&#39;<br>&#39;;  // 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=&#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

5 substr_replace()

関数: 文字列の一部を別の文字列に置換します

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

str: 文字列情報

replacement: 置換される文字列

start: 開始位置

length: length

コード例

echo substr_replace("天气晚来秋","沉",3,3);  // 天沉晚来秋

注: 中国語の文字を置換するときは、中国語の文字の 3 バイトに注意する必要があります。

推奨される学習: 「PHP ビデオ チュートリアル >>

以上がPHPの内容の一部を置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。