如何使用PHP获取字符串中的第二个和第三个图像URL?

时间:2017-09-08 16:04:55

标签: php

如何使用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];
?>

它只会回显第一个图片网址,我想知道如何用我的代码获取第二个和第三个图片网址?

2 个答案:

答案 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');