ホームページ  >  記事  >  バックエンド開発  >  PHP は、string_PHP チュートリアルの N 番目に出現する文字コードを置き換えます

PHP は、string_PHP チュートリアルの N 番目に出現する文字コードを置き換えます

WBOY
WBOYオリジナル
2016-07-13 17:14:041155ブラウズ

以下に、正規表現を使用せずに直接置換する方法、正規表現を使用して文字を置換する方法、PHP 独自の関数を使用して置換する方法など、PHP 開発における文字置換方法をいくつかまとめました。

たとえば、次のような文字列があります: $a='hello world hello pig hello cat hello Dog hello small boy';
次に、3 回目に表示される hello を Good-bye に変更したいと思います。例:
「こんにちは世界、こんにちは豚、さようなら猫、こんにちは犬、こんにちは小さな男の子」 今回の場合、しばらく PHP の組み込み関数が見つからず、正規表現を使用できないことが必要なときに、この単純な関数を作成しました。良い組み込み関数の推奨事項があれば、お願いします。メッセージを残してください:)

コードは次のとおりですコードをコピーコードは次のとおりです
/*
* $text は入力テキストです
* $word は元の文字列です
* $cword は置換する必要がある文字列です
* $pos は、$text 内で $word が 1 から数えて N 回目に出現する位置を指します
*
*/
関数changeNstr($text,$word,$cword,$pos=1){
$text_array=explode($word,$text); $num=count($text_array)-1; if($pos>$num){
return "数値が大きすぎます!または $word が見つかりません"; }
$result_str=''; for($i=0;$i if($i==$pos-1){
$result_str.=$text_array[$i].$cword
}その他{
$result_str.=$text_array[$i].$word;
}
}
rtrim($result_str,$word)を返す
}
$text='こんにちは世界、こんにちは豚、こんにちは猫、こんにちは犬、こんにちは小さな男の子'; $word='こんにちは'; $cword='さようなら'; echo changeNstr($text,$word,$cword,3); //出力: こんにちは、世界、こんにちは、豚、さようなら、猫、こんにちは、犬、こんにちは、小さな男の子
?>




規則的なルールはより多くの方法につながります


utf-8エンコードの場合

コードをコピー


$regex = "/(,|,||||)/i"; $result = preg_replace($regex," ",$test); ?>
$test = "河北、石家荘、北京、上海 | 天津 | 重慶 | 保定、、、河南、 "; print_r($result);


結果
河北省 石家荘 北京 上海 天津 重慶 保定 河南省

php関数の置き換え

PHP で一般的に使用される正規一致関数の違いは、主に str_replace、str_ireplace、substr_replace、preg_replace、preg_match、preg_match_all、preg_quote、preg_split、ereg_replace、eregi_replace、preg_replace、str_split です。もちろん、それらの中には正規表現を使用できないものもあります。関連する正規関数の関係が曖昧なので、まとめて比較してみます

str_splitX文字列を分割する長さを指定します。デフォルトでは、単一の文字が配列に分割されます。 爆発するpreg_quote - 正規表現文字をエスケープします。これは、特殊文字にバックスラッシュを追加することを意味します。
正規表現をサポート 特徴 備考
str_replace X 文字列置換関数、大文字と小文字を区別する
str_ireplace X 文字列置換関数、大文字と小文字を区別せず、配列のバッチ置換をサポート 追加するよう思い出させてくれたネチズン フランシスに感謝します
substr_replace X 部分置換文字列関数、位置インデックスを指定可能
preg_replace 置換のための一致パターンを指定し、部分文字列参照をサポートします 優先使用
ereg_replace 置換用の一致パターンを指定し、大文字と小文字を区別し、部分文字列参照をサポートします
eregi_replace 置換用の一致パターンを指定し、大文字と小文字を区別せず、部分文字列参照をサポートします
エレグ 指定されたパターンの全文一致。一致を判断するために使用することも、一致する配列を返すために使用することもできます
preg_match 一度終了するパターンマッチングを指定して、一致するかどうかを判断するか、返された一致配列を使用します 優先使用
preg_match_all パターンの全文一致を指定します。通常は、返された一致配列を使用するために使用されます 優先使用
preg_split マッチング モードで通常の分割を指定します。可能な場合は、explode または str_split を使用することをお勧めします。
X 文字列を分割するために 1 つまたは複数の文字を指定でき、成功すると配列が返されます。たとえば、12345 を 34 で分割すると、12 と 5 が返されます。
http://www.bkjia.com/PHPjc/629041.html

www.bkjia.com

http://www.bkjia.com/PHPjc/629041.html技術記事以下に、正規表現を使わずに直接置換する方法、正規表現を使用して文字を置換する方法、PHP 独自の関数を使用して置換する方法など、PHP 開発における文字の置換方法をまとめました。 たとえば、こんな言葉があります…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。