views:

34

answers:

3

Hi, 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.example.com/category/'
'http://www.example.com/tag/name/'

Please Help!!!!

A: 

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

Ignacio Vazquez-Abrams
A: 

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

Scott
A: 

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

codaddict
Thanks for the solution that worked great.
sreejith