ホームページ  >  記事  >  バックエンド開発  >  PHP は最初に出現した string_PHP チュートリアルのみを置換します。

PHP は最初に出現した string_PHP チュートリアルのみを置換します。

WBOY
WBOYオリジナル
2016-07-13 16:57:272127ブラウズ

PHP では、文字列内の指定した文字を置換する場合、通常は str_replace 関数のように一度にすべて置換しますが、記事内のキーワードの置換など、最初に出現した文字だけを置換したい場合もあります。キャラが100人いると100回出現するのは無理です、ああ、数回だけ制限したいのですが、その実装方法を紹介します。

$str='これは文字列です。ABC は 1 回のみ置換し、次の ABC は置換しません。これを実現する方法はありますか? ';

最初の abc を xyz に置き換えます。置き換えられる文字列は固定されているため、多くの人は str_replace() 関数を使用して、この関数の使用が希望どおりであるかどうかを確認します。

str_replace( 混合 $search , 混合 $replace , 混合 $subject [, int &$count ] )

最後のパラメータは置換の総数を返すものであり、置換回数を指定するものではないため、str_replace() を使用するのは無理です。

preg_replace()は実装できますが、正規表現が使われているのが残念

コードは次のとおりです$str=preg_replace('/abc/','abc',$str,1); エコー $str;例
コードをコピー


@ の最初の 2 桁 (両端を含む) から始まり、4 桁以降を非表示としてメールを表示します

コードは次のとおりですコードをコピー関数 show_email_2($string){ $first = strpos($string, '@');www.bkjia.com
//var_dump($first);

if($first==1){
$string = '****'.$string;
}
If($first>1 && $first $string = substr_replace($string,'****',0,$first-1); }
If($first>5){
$string = substr_replace($string,'****',$first-5,4);
}

var_dump($string);
戻り $string;
}
//show_email_2('22@163.com') //出力-->****2@163.com
//show_email_2('22@22.com') //出力-->****2@22.com
Show_email_2('6123456@163.com'); //出力-->61****6@163.com

正規表現を使用しない方法はありますか?はい、次のようにすることができます

$replace='xyz'; if(($position=strpos($str,$replace))!==false){

$leng=strlen($replace); $str=substr_replace($str,'abc',$position,$leng); }

エコー $str;



指定した回数に交換したい場合は、以下の方法をご参照ください

コードは次のとおりです コードをコピー

/*
* $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); //出力: こんにちは、世界、こんにちは、豚、さようなら、猫、こんにちは、犬、こんにちは、小さな男の子

?>





例は理解しやすいので、詳しく知りたくない場合は、str_replace を使用するだけで済みます。


http://www.bkjia.com/PHPjc/631531.html

tru​​e

http://www.bkjia.com/PHPjc/631531.html

PHPで文字列内の指定した文字を置換したい場合、通常はstr_replace関数などで一括置換しますが、記事内にキーワードがある場合は置換するなど、最初に出現した文字だけを置換したい場合もあります。 ..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。