我有一个.txt文件,我希望用新字符串替换第一次出现子字符串后的所有内容。
例如,如果.txt文件包含:
这是彼得,他喜欢巧克力馅饼。外面阳光充足。
我希望能够用“酒吧”替换世界“巧克力”之后的所有东西,最终结果将是:
这是彼得,他喜欢巧克力棒
最好的方法是什么?
答案 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;