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 回答