1

how to get image source from an img tag using php function.

ArK
  • 20,698
  • 67
  • 109
  • 136

4 Answers4

8

Or, you can use the built-in DOM functions (if you use PHP 5+):

$doc = new DOMDocument();
$doc->loadHTMLFile($url);
$xpath = new DOMXpath($doc);
$imgs = $xpath->query("//img");
for ($i=0; $i < $imgs->length; $i++) {
    $img = $imgs->item($i);
    $src = $img->getAttribute("src");
    // do something with $src
}

This keeps you from having to use external classes.

Raptor
  • 53,206
  • 45
  • 230
  • 366
Felix
  • 88,392
  • 43
  • 149
  • 167
5

Consider taking a look at this.

I'm not sure if this is an accepted method of solving your problem, but check this code snippet out:

// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');

// Find all images 
foreach($html->find('img') as $element) 
       echo $element->src . '<br>';

// Find all links 
foreach($html->find('a') as $element) 
       echo $element->href . '<br>';
Ben Everard
  • 13,652
  • 14
  • 67
  • 96
4

You can use PHP Simple HTML DOM Parser (http://simplehtmldom.sourceforge.net/)

// Create DOM from URL or file

$html = file_get_html('http://www.google.com/');

// Find all images 

foreach($html->find('img') as $element) {
   echo $element->src.'<br>';
}

// Find all links 

foreach($html->find('a') as $element) {
   echo $element->href.'<br>';
}
ahmetunal
  • 3,930
  • 1
  • 23
  • 26
1
$path1 = 'http://example.com/index.html';//path of the html page
$file = file_get_contents($path1);
$dom = new DOMDocument;

@$dom->loadHTML($file);
$links = $dom->getElementsByTagName('img');
foreach ($links as $link)
{    
    $re = $link->getAttribute('src');
    $a[] = $re;
}

Output:

Array
(
    [0] => demo/banner_31.png
    [1] => demo/my_code.png
)
Joel James
  • 1,315
  • 1
  • 20
  • 37
Basil
  • 17
  • 2