我正在尝试从外部网站抓取图像URL,以用作我自己网站上图像元素中的src属性。
问题是,在外部网站上,图片网址嵌套在图片元素,在源元素中,然后在“ data-srcset”属性中以不同的大小进行迭代。示例:
<picture><source data-srcset="https://imageurl.com 640w, https://imageurl.com 720w, https://imageurl.com 860w"></picture>
我可以使用PHP Simple HTML DOM的find()定位特定元素,并将其存储在变量中。此变量称为$ imageselector。我可以通过为data-srcset创建变量来进一步定位实际属性:
$srcset = 'data-srcset';
我的最终输出如下所示:
<?php echo $imageselector->$srcset; ?>
但是,这尝试打印属性内的所有内容(当然),这对我来说不是很有用。
有人对如何获取,例如说属性中的第一个URL有任何想法吗?
((添加最大长度也不会带来多大好处,因为URL的长度可能随时改变)
您可以取$imageselector->$srcset
,将其内容拆分为一个数组,然后根据需要过滤。
$longString = $imageselector->$srcset;
$pics = explode(",", $longString)
现在您有一个包含"https://imageurl.com 640w"
之类的数组,因此现在您可以以[1]
为例。
$toUse = explode(" ", $pics[1]);
$toUse = $toUse[0]; //to get the useful part of the item
或者,您也可以预过滤整个数组
function getLink($string) {
return substr($string, 0, strpos($string, " "));
}
//Once you already have the exploded string
$pics = array_filter($pics, "getLink");