how to get link from img tag

断了今生、忘了曾经 提交于 2019-12-08 09:29:31

问题


$img = '<img src="http://some-img-link" alt="some-img-alt"/>';

$src = preg_match('/<img src=\"(.*?)\">/', $img);

echo $src;

I want to get the src value from the img tag and maybe the alt value


回答1:


Assuming you are always getting the img html as you shown in the question.

Now in the regular expression you provided its saying that, after the src attribute its given the closing tag for img. But in the string there is an alt attribute also. So you need to care about it also.

/<img src=\"(.*?)\".*\/>/

And if you are going to check alt also then the regular expression.

/<img src=\"(.*?)\"\s*alt=\"(.*?)\"\/>/

Also you are just checking whether its matched or not. If you need to get the matches, you need to provide a third parameter to preg_match which will fill with the matches.

$img = '<img src="http://some-img-link" alt="some-img-alt"/>';
$src = preg_match('/<img src=\"(.*?)\"\s*alt=\"(.*?)\"\/>/', $img, $results);
var_dump($results);

Note : The regex given above is not so generic one, if you could provide the img strings which will occur, will provide more strong regex.




回答2:


 function scrapeImage($text) {
    $pattern = '/src=[\'"]?([^\'" >]+)[\'" >]/';
    preg_match($pattern, $text, $link);
    $link = $link[1];
    $link = urldecode($link);
    return $link;

}



回答3:


Tested Code :

$ input=’<img src= ”http://www.site.com/file.png” > ‘;
preg_match(“<img.*?src=[\"\"'](?<url>.*?)[\"\"'].*?>”,$input,$output);
echo $output;   // output = http://www.site.com/file/png



回答4:


How to extract img src, title and alt from html using php?

See the first answer on this post.

You are going to use preg_match, just in a slightly different way.




回答5:


Try this code:

<?php
$doc = new DOMDocument();
$doc->loadHTML('<img src="" />');
$imageTags = $doc->getElementsByTagName('img');

foreach($imageTags as $tag) {
    echo $tag->getAttribute('src');
}
?>



回答6:


Also you could use this library: SimpleHtmlDom

<?php
$html = new simple_html_dom();
$html->load('<html><body><img src="image/profile.jpg" alt="profile image" /></body></html>');
$imgs = $html->find('img');
foreach($imgs as $img)
print($img->src);
?>



回答7:


preg_match('/<img src=\("|')([^\"]+)\("|')[^\>]?>/', $img);



回答8:


You already have good enough responses above, but here is another one code (more universal):

function retrieve_img_src($img) {
  if (preg_match('/<img(\s+?)([^>]*?)src=(\"|\')([^>\\3]*?)\\3([^>]*?)>/is', $img, $m) && isset($m[4]))
    return $m[4];
  return false;
}



回答9:


You can use JQuery to get src and alt attributes

include jquery in header

 <script type="text/javascript" 
           src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
 </script>

//HTML

//to get src and alt attributes

<script type='text/javascript'>
 // src attribute of first image with id =imgId

 var src1= $('#imgId1').attr('src');
 var alt1= $('#imgId1').attr('alt');

 var src2= $('#imgId2').attr('src');
 var alt2= $('#imgId2').attr('alt');
</script>


来源:https://stackoverflow.com/questions/11406453/how-to-get-link-from-img-tag

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!