开发者

Exact string replacement in php

开发者 https://www.devze.com 2023-01-23 02:34 出处:网络
I\'m looking for a way to replace a string in php that exactly matches with the subject. For example I got a file named \'hello-world.txt\' having three lines:

I'm looking for a way to replace a string in php that exactly matches with the subject.

For example I got a file named 'hello-world.txt' having three lines:

'http://www.example.com/'
'http://www.example.com/category/'
'http://www.example.com/tag/name/'

and I need to replace the 'http://www.example.com/' with 'http://www.example2.com'

$string=file_get_contents('hello-world.txt');
$string=str_replace('http://www.example.com/','http://www.example2.com',$string);
echo $string;

I will be getting a result similar to this:

'http://www.example2.com/'
'http://www.example2.com/category/'
'http://www.example2.com/tag/name/'

But What I actually need is something like this:

'http://www.example2.com/'
'http://www.exa开发者_Python百科mple.com/category/'
'http://www.example.com/tag/name/'

Please Help!!!!


You can use preg_replace with the m modifier as:

$string=preg_replace('~^http://www\.example\.com/$~m','http://www.example2.com',$string);

Code In Action


First check if the current line is what you're looking for. If not, just spit it back out.


Either $string=str_replace("'http://www.example.com/'", "'http://www.example2.com'", $string); since in your example you have single quotes around each line or use preg_replace like this:

$string=preg_replace('/^http:\/\/www\.example\.com\/$/', 'http://www.example2.com/', $string);

... if those single quotes aren't supposed to be there. The $ at the end of the regex means the end of the line and the ^ means the beginning of the line. Periods and / need to be escaped hence the \. and \/

I haven't tested this code. Here is a link to preg_replace() http://php.net/manual/en/function.preg-replace.php

0

精彩评论

暂无评论...
验证码 换一张
取 消