如何使用php获取字符串中的第二个和第三个图像URL?
我的$st_data
是
<img src="1.jpg"><img src="2.jpg"><img src="3.jpg">
然后我使用此代码
<?PHP
preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $st_data, $img_url);
echo $img_url[1];
echo $img_url[2];
echo $img_url[3];
?>
它只会回显第一个图片网址,我想知道如何用我的代码获取第二个和第三个图片网址?
答案 0 :(得分:0)
preg_match
仅匹配第一个实例。您需要使用preg_match_all
。试试这个:
$st_data = '<img src="1.jpg"><img src="2.jpg"><img src="3.jpg">';
preg_match_all('/< *img[^>]*src *= *["\']?([^"\']*)/i', $st_data, $img_url);
echo $img_url[1][0];
echo $img_url[1][1];
echo $img_url[1][2];
答案 1 :(得分:0)
如果不必使用正则表达式:
$st_data = '<img src="1.jpg"><img src="2.jpg"><img src="3.jpg">';
$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML($st_data);
libxml_use_internal_errors(false);
$images = $domd->getElementsByTagName('img');
$second = $images[1]->getAttribute('src');
$third = $images[2]->getAttribute('src');