たとえば、次のような文字列があります。 $a='hello world hello pig hello cat hello Dog hello small boy';
次に、3 回目に表示される hello を Goodbye に変更したいと思います。例:
「こんにちは、世界、こんにちは、豚、さようなら、猫、こんにちは、犬、こんにちは、小さな男の子」;
この場合、しばらくの間 PHP の組み込み関数が見つからなかったので、正規表現が使用できないという条件でこの単純な関数を作成しました。良い組み込み関数に関する推奨事項があれば、残してください。メッセージ:)
PHP インタビューの質問からの転載:
http://phpmst.com/
/*- * $text は入力テキストです。
- * $word は置換する必要がある文字列です
- * $pos は $word を指します。 1 から始まる $text 内の N 番目の出現位置
- * */
- function 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;
- } else{
- $result_str.=$text_array[$i].$word;}
-
- }
-
- return rtrim($result_str,$word);
- }
- $text='こんにちは、世界、こんにちは、豚、こんにちは、猫、こんにちは、犬、こんにちは、小さな男の子';
- $word='hello';
- $cword='good-bye';
- echochangeNstr($text,$word,$cword,3);
- //出力: hello world hello pig Good-bye cat hello pig hello小さな男の子
- ?>
-
-
コードをコピー
|