Skip to content

Instantly share code, notes, and snippets.

@vyspiansky
Last active April 2, 2024 19:37
Show Gist options
  • Star 22 You must be signed in to star a gist
  • Fork 11 You must be signed in to fork a gist
  • Save vyspiansky/11285153 to your computer and use it in GitHub Desktop.
Save vyspiansky/11285153 to your computer and use it in GitHub Desktop.
PHP: get image src attribute (regular expression)
<?php
// Source: http://goo.gl/qyLFbg
$html = '<img border="0" src="/images/image.jpg" alt="Image" width="100" height="100" />';
preg_match( '@src="([^"]+)"@' , $html, $match );
$src = array_pop($match);
// will return /images/image.jpg
echo $src;
@zikezhang
Copy link

preg_match_all('/<img[^>]+>/i',$text, $result);

@kamleshpal1311
Copy link

kamleshpal1311 commented May 1, 2017

Hi,
If my html is like this $html = "<img border="0" src="/images/image1.jpg" alt="Image" width="100" height="100" /><img border="0" src="/images/image2.jpg" alt="Image" width="100" height="100" /><img border="0" src="/images/image3.jpg" alt="Image" width="100" height="100" />";

Then how can i get the all image tag src
Thanks
KamleshPal

@vyspiansky
Copy link
Author

You can use the preg_match_all function. For instance:

$html = '
    <img border="0" src="/images/image1.jpg" alt="Image" width="100" height="100" />
    <img border="0" src="/images/image2.jpg" alt="Image" width="100" height="100" />
    <img border="0" src="/images/image3.jpg" alt="Image" width="100" height="100" />
    ';
preg_match_all( '@src="([^"]+)"@' , $html, $match );

$src = array_pop($match);
print_r($src);

Output:

Array (
    [0] => /images/image1.jpg
    [1] => /images/image2.jpg
    [2] => /images/image3.jpg
)

@azimidev
Copy link

azimidev commented Jun 9, 2018

preg_match('/<img.+src=[\'"](?P<src>.+?)[\'"].*>/i', $body, $result);

@azimidev
Copy link

azimidev commented Jun 9, 2018

preg_match('~<img.*?src=["\']+(.*?)["\']+~', $body, $result);

@chetanbhadarka
Copy link

Hy, in my case i have a html file which has store the view source of url and then i want to Get all 'img' tages with 'alt' from html file ,so what i do for this....

thanks in advance.

@harshpatel147
Copy link

Hy, in my case i have a html file which has store the view source of url and then i want to Get all 'img' tages with 'alt' from html file ,so what i do for this....

thanks in advance.

$html = '
    <img border="0" src="/images/image1.jpg" alt="Image" width="100" height="100" />
    <img border="0" src="/images/image2.jpg" alt="Image" width="100" height="100" />
    <img border="0" src="/images/image3.jpg" alt="Image" width="100" height="100" />
    ';

$get_Img_Src = '/<img[^>]*src=([\'"])(?<src>.+?)\1[^>]*>/i'; //for get img src path only...

preg_match_all($get_Img_Src, $html, $result); 
echo $result['src'][0];
echo $result['src'][1];

OR

$get_Img_Src = '/<img[^>]*src=([\'"])(?<src>.+?)\1[^>]*alt=([\'"])(?<alt>.+?)\2*>/i'; //for get img src path & alt text also

preg_match_all($get_Img_Src, $html, $result); 
echo $result['src'][0];
echo $result['src'][1];
echo $result['alt'][0];
echo $result['alt'][1];

@codigoenlace
Copy link

Hola, es mi caso funciono a la perfección, gracias. Saludos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment