PHP TIP: A quick, non-RegEx way of replacing an IMG tag’s SRC= attribute

Posted on June 25, 2013 by David Hilowitz

It’s often useful to be able to swap out the src= attribute of an HTML IMG tag without losing any of the other attributes. Here’s a quick, non-regex way of doing this. It uses the PHP DOM API to create a tiny HTML document, then saves the XML for just the IMG element.

function replace_img_src($original_img_tag, $new_src_url) {
    $doc = new DOMDocument();

    $tags = $doc->getElementsByTagName('img');
    if(count($tags) > 0)
           $tag = $tags->item(0);
           $tag->setAttribute('src', $new_src_url);
           return $doc->saveXML($tag);

    return false;

: In versions of PHP after 5.3.6, $doc->saveXML($tag) can be changed to $doc->saveHTML($tag).