Img replace

Having multiple image scenarios, need to find a regex to find an image and replace the full tag with other tag…

$a = 'asdasdasd as asdasdas <img src="http://www.domain1.com/1.gif"> sdfsdf';
// or
$a = 'asdasdasd as asdasdas <img class="right" src=http://www.domain1.com/1.gif /> sdfsdf';
// or
$a = 'asdasdasd as asdasdas <img alt="image" src=http://www.domain1.com/1.gif> sdfsdf';
// or
$a = "asdasdasd as asdasdas <img width='10' height='10' src='http://www.domain1.com/1.gif' alt='as' /> sdfsdf";
// or
$a = preg_match('/(<img).*?src.*?(http://www.domain1.com/1.gif)/i>','<img src="http://www.domain2.com/11.gif">', $a);

var_dump($a);
// should be 'asdasdasd as asdasdas <img src="http://www.domain2.com/11.gif"> sdfsdf'

May you please improve my regex?

Thanks!

I’ve used these before - see if you can combine them:


$img_tag_pattern = "#\\<img[^\\>]+\\>#i";

$img_src_pattern = "#(= src=['\\"]?.+[^\\"]?)?src=[\\"']?([^\\"']+)#i";

Something like

$a = preg_replace('|<img ([^>]*)src="?http://www.domain1.com/1.gif"? ([^>]*)>|i','<img src="http://www.domain2.com/11.gif">', $a);

but still not working… :frowning:

 $a = 'asdasdasd as asdasdas <img src="http://www.domain1.com/1.gif"> sdfsdf';
// or
$a = 'asdasdasd as asdasdas <img class="right" src=http://www.domain1.com/1.gif /> sdfsdf';
// or
$a = 'asdasdasd as asdasdas <img alt="image" src=http://www.domain1.com/1.gif> sdfsdf';
// or
$a = "asdasdasd as asdasdas <img width='10' height='10' src='http://www.domain1.com/1.gif' alt='as' /> sdfsdf";
// or
$a = preg_match('/(<img).*?src.*?(http://www.domain1.com/1.gif)/i>','<img src="http://www.domain2.com/11.gif">', $a);

var_dump($a);
// should be 'asdasdasd as asdasdas <img src="http://www.domain2.com/11.gif"> sdfsdf'  

By other words

What I need is find the img tag with the src=http://www.domain1.com/1.gif (this tag can have many alternatives) and replace <img> tag with the following:
<img src=“http://www.domain2.com/11.gif”>

Many thanks