phpregexstring

Regex & PHP - isolate src attribute from img tag


With PHP, how can I isolate the contents of the src attribute from $foo? The end result I'm looking for would give me just "http://example.com/img/image.jpg"

$foo = '<img class="foo bar test" title="test image" src="http://example.com/img/image.jpg" alt="test image" width="100" height="100" />';

Solution

  • If you don't wish to use regex (or any non-standard PHP components), a reasonable solution using the built-in DOMDocument class would be as follows:

    <?php
        $doc = new DOMDocument();
        $doc->loadHTML('<img src="http://example.com/img/image.jpg" ... />');
        $imageTags = $doc->getElementsByTagName('img');
    
        foreach($imageTags as $tag) {
            echo $tag->getAttribute('src');
        }
    ?>