在PHP中,如何用新字符串替换给定子字符串之后的所有内容?

在PHP中,如何用新字符串替换给定子字符串之后的所有内容?,php,string,replace,substring,Php,String,Replace,Substring,我有一个.txt文件,我想用一个新字符串替换第一次出现子字符串之后的所有内容 例如,如果.txt文件包含: 这是彼得,他喜欢巧克力派。外面阳光明媚 我希望能够用“棒”取代世界“巧克力”之后的所有东西,因此最终结果将是: 这是彼得,他喜欢巧克力 执行此操作的最佳方法是什么?Apreg\u replace调用将起作用: $subject = "This is Peter and he likes chocolate pies. It's sunny outside."; $regex = "#(ch

我有一个.txt文件,我想用一个新字符串替换第一次出现子字符串之后的所有内容

例如,如果.txt文件包含:

这是彼得,他喜欢巧克力派。外面阳光明媚

我希望能够用“棒”取代世界“巧克力”之后的所有东西,因此最终结果将是:

这是彼得,他喜欢巧克力


执行此操作的最佳方法是什么?

A
preg\u replace
调用将起作用:

$subject = "This is Peter and he likes chocolate pies. It's sunny outside.";
$regex = "#(chocolate).+$#";
$out = preg_replace($regex,"$1 bars.",$subject);

如果需要,可以用变量替换搜索模式和替换模式中的单词。

A
preg\u replace
调用将起作用:

$subject = "This is Peter and he likes chocolate pies. It's sunny outside.";
$regex = "#(chocolate).+$#";
$out = preg_replace($regex,"$1 bars.",$subject);

如果需要,可以用变量替换搜索模式和替换模式中的单词。

混合使用strpo和substr来切掉结尾

$str = 'This is Peter and he likes chocolate pies. It\'s sunny outside.';
$find = 'pies';
$replace = 'bars';
$str = substr($str, 0, strpos($str, $find)) . $replace;

混合使用strpos和substr来切掉末端

$str = 'This is Peter and he likes chocolate pies. It\'s sunny outside.';
$find = 'pies';
$replace = 'bars';
$str = substr($str, 0, strpos($str, $find)) . $replace;

我喜欢你的回答。我的问题是,我不知道“巧克力”这个词后面是什么,我只知道我需要用另一个字符串替换“巧克力”后面的所有内容。这就是为什么我在这里找不到“派”的原因,所以使用变量$replace是的,我需要将以“chocolate”结尾的字符串和$replace字符串连接起来,但我不知道如何将第一个字符串取出来。您可以将“chocolate”用作$find和
$str=substr($str,0,strps($str,find)-strlen($find))$替换非常感谢,你的提示奏效了(只需将“-”改为“+”)。我喜欢你的答案。我的问题是,我不知道“巧克力”这个词后面是什么,我只知道我需要用另一个字符串替换“巧克力”后面的所有内容。这就是为什么我在这里找不到“派”的原因,所以使用变量$replace是的,我需要将以“chocolate”结尾的字符串和$replace字符串连接起来,但我不知道如何将第一个字符串取出来。您可以将“chocolate”用作$find和
$str=substr($str,0,strps($str,find)-strlen($find))$替换非常感谢,你的提示有效(只需将“+”改为“-”即可:)