2013-07-30 28 views
0

我有一個.txt文件,我想用一個新的字符串替換第一次出現子字符串後出現的所有內容。如何在PHP中使用新字符串替換給定子字符串後的所有內容?

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

這是彼得和他喜歡的巧克力派。外面陽光明媚。

我希望能夠在世界的「巧克力」與「酒吧」後取代一切,所以最終的結果將是:

這是彼得和他喜歡的巧克力棒

這樣做的最好方法是什麼?

回答

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); 

你可以,如果你想在搜索模式的字和替換模式替換變量。

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; 
+1

+1對於非正則表達式:D –

+0

我喜歡你的答案。我的問題是,雖然我不知道「巧克力」這個詞後面出現了什麼,但我只知道我需要用另一個字符串替換「巧克力」之後的所有東西。這就是爲什麼我不能在這裏找到「餡餅」 – Zannix

+0

所以使用變量$ replace –

相關問題