1

だから私は次の文字列を持っています。

      John Hotmail(johnhotmail@hotmail.com) , John Hotmail(johnhotmail@hotmail.com) ,

上記の John Hotmail の最初のインスタンスのみを置き換えようとしていますが、何を試しても両方が置き換えられます。フォーラムで回答を探しましたが、すでにすべての解決策を試しました。私は以下を試しました。

    $string= "/John Hotmail(johnhotmail@hotmail.com) ,/";
   //$string= "John Hotmail(johnhotmail@hotmail.com) ,";
    $count = 1;
    $descriptionMessage = $name . ' said hello' . $model->Name . ' to the following people:' . $listParticipants;
    $descriptionMessage = preg_replace($string, "", $descriptionMessage,$count);

str_replace で同様のことを試しました。文字列メッセージを / を含むように変更し、/ を含まないようにしました。count を 0 に設定した場合、何も削除されず、上記のように 1 に設定して、両方の John Hotmail 文字列を削除しました。私が入力した設定はどれも、最初の発生を削除しただけではなく、その理由がわかりません. 私は現在、Yii フレームワークのコントローラー クラスでこのコードを使用しています。助けてくれてありがとう。

4

1 に答える 1

2

これにより、最初のオカレンスが置き換えられます。

$string = 'John Hotmail(johnhotmail@hotmail.com) ,';
$descriptionMessage = 'John Hotmail(johnhotmail@hotmail.com) , John Hotmail(johnhotmail@hotmail.com) ,';

$position = strpos($descriptionMessage, $string);
if ($position !== false) {
    $descriptionMessage = substr_replace($descriptionMessage, '', $position , strlen($string));
}
于 2012-11-27T12:52:40.250 に答える