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

时间:2013-07-30 22:23:05

标签: php string replace substring

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

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

这是彼得,他喜欢巧克力馅饼。外面阳光充足。

我希望能够用“酒吧”替换世界“巧克力”之后的所有东西,最终结果将是:

这是彼得,他喜欢巧克力棒

最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

preg_replace来电将有效:

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

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

答案 1 :(得分:2)

使用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;