web-dev-qa-db-ja.com

PHPは0番目の位置から文字列の最初の出現を置き換えます

次のように、PHPで最初のWordを検索して別のWordに置き換えたいと思います。

$str="nothing inside";

検索で「nothing」を「something」に置き換え、substrを使用せずに置き換えます

出力は次のようになります: 'something inside'

26
Ben

preg_replace() を1の制限で使用します

preg_replace('/nothing/', 'something', $str, 1);

正規表現/nothing/を検索する文字列に置き換えます。正規表現は常に左から右に評価されるため、これは常に最初のインスタンスに一致します。

52
Milind Ganjoo

str_replaceのmanページ(http://php.net/manual/en/function.str-replace.php)でこの関数を見つけることができます

function str_replace_once($str_pattern, $str_replacement, $string){

    if (strpos($string, $str_pattern) !== false){
        $occurrence = strpos($string, $str_pattern);
        return substr_replace($string, $str_replacement, strpos($string, $str_pattern), strlen($str_pattern));
    }

    return $string;
}

使用例: http://codepad.org/JqUspMPx

13
mishu

これを試して

preg_replace('/^[a-zA-Z]\s/', 'ReplacementWord ', $string)

それがすることは、最初から最初の空白まで何でも選択し、それをreplcementWordに置き換えます。 replcementWordの後にスペースがあります。これは、検索文字列に\sを追加したためです

3
Uday Sawant
preg_replace('/nothing/', 'something', $str, 1);
0
trex005