$img = '<img src="http://some-img-link" alt="some-img-alt"/>'; $src = preg_match('/<img src=\"(.*?)\">/', $img); echo $src; 
  Я хочу получить значение src из тега img и, возможно, значение alt 
Предполагая, что вы всегда получаете img html, как вы показали в вопросе.
Теперь в регулярном выражении вы указали свое высказывание, что после атрибута src ему задан закрытый тег для img. Но в строке есть атрибут alt. Поэтому вам также нужно заботиться об этом.
 /<img src=\"(.*?)\".*\/>/ 
И если вы собираетесь проверить alt также регулярное выражение.
 /<img src=\"(.*?)\"\s*alt=\"(.*?)\"\/>/ 
Также вы просто проверяете, соответствует ли он или нет. Если вам нужно получить матчи, вам нужно предоставить третий параметр preg_match, который будет заполняться совпадениями.
 $img = '<img src="http://some-img-link" alt="some-img-alt"/>'; $src = preg_match('/<img src=\"(.*?)\"\s*alt=\"(.*?)\"\/>/', $img, $results); var_dump($results); 
Примечание. Вышеупомянутое регулярное выражение не является таким общим, если вы можете предоставить строки img, которые произойдут, обеспечит более сильное регулярное выражение.
  function scrapeImage($text) { $pattern = '/src=[\'"]?([^\'" >]+)[\'" >]/'; preg_match($pattern, $text, $link); $link = $link[1]; $link = urldecode($link); return $link; } 
Протестированный код:
 $ 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 
Как извлечь img src, title и alt из html с помощью php?
См. Первый ответ на этот пост.
Вы собираетесь использовать preg_match, совсем немного иначе.
Попробуйте этот код:
 <?php $doc = new DOMDocument(); $doc->loadHTML('<img src="" />'); $imageTags = $doc->getElementsByTagName('img'); foreach($imageTags as $tag) { echo $tag->getAttribute('src'); } ?> 
Также вы можете использовать эту библиотеку: 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); ?> 
 preg_match('/<img src=\("|')([^\"]+)\("|')[^\>]?>/', $img); 
У вас уже есть достаточно хорошие ответы выше, но вот еще один код (более универсальный):
 function retrieve_img_src($img) { if (preg_match('/<img(\s+?)([^>]*?)src=(\"|\')([^>\\3]*?)\\3([^>]*?)>/is', $img, $m) && isset($m[4])) return $m[4]; return false; } 
Вы можете использовать JQuery для получения атрибутов src и alt
включить jquery в заголовке
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script> 
// HTML
// для получения атрибутов src и alt
 <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>