Attributes 如何通过php获取特定类之间的属性内容
这是一个输入代码:Attributes 如何通过php获取特定类之间的属性内容,attributes,tags,Attributes,Tags,这是一个输入代码: $str=' <div class="_53d _53q">Not necessary data</div> <div class="tagWrapper"> <i style="background-image: url(https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-ash4/p206x206/401581_10201210435645736_1028078736_n.jpg);
$str='
<div class="_53d _53q">Not necessary data</div>
<div class="tagWrapper">
<i style="background-image: url(https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-ash4/p206x206/401581_10201210435645736_1028078736_n.jpg);" class="uiMediaThumbImg"></i>
<div class="taggerOverlay hidden_elem"><div class="left blackwash"></div></div>
</div>
<div class="_53d _53q">Not necessary data</div>
<div class="_53d _53q">Not necessary data</div>
<div class="tagWrapper">
<i style="background-image: url(https://fbcdn-sphotos-f-a.akamaihd.net/hphotos-ak-ash3/p206x206/486115_10200477972538937_146909394_n.jpg);" class="uiMediaThumbImg"></i>
<div class="taggerOverlay hidden_elem"><div class="left blackwash"></div></div>
</div>
<div class="_53d _53q">Not necessary data</div>
';
我想获得解析html时应该使用的“之间的所有图像链接
您可以通过在
元素上添加额外的搜索级别来改进此代码,但我认为
标记已经足够少见了
一旦进入了style属性,我就使用了字符串解析。它应该得到改进,变得更加通用,但这应该让您更接近您的目标
$arr = array();
$dom = new DOMDocument;
$dom->loadHTML($str);
foreach ($dom->getElementsByTagName('i') as $node) {
if($node->hasAttribute('style')) {
$nodes = explode(":",trim($node->getAttribute('style')), 2);
if(trim($nodes[0]) === 'background-image') {
$pos = strpos(trim($nodes[1]), "url");
if($pos !== false) {
$arr[] = substr(trim($nodes[1]), 4, -2);
}
}
}
}
您应该使用来解析html
您可以通过在
元素上添加额外的搜索级别来改进此代码,但我认为
标记已经足够少见了
一旦进入了style属性,我就使用了字符串解析。它应该得到改进,变得更加通用,但这应该让您更接近您的目标
$arr = array();
$dom = new DOMDocument;
$dom->loadHTML($str);
foreach ($dom->getElementsByTagName('i') as $node) {
if($node->hasAttribute('style')) {
$nodes = explode(":",trim($node->getAttribute('style')), 2);
if(trim($nodes[0]) === 'background-image') {
$pos = strpos(trim($nodes[1]), "url");
if($pos !== false) {
$arr[] = substr(trim($nodes[1]), 4, -2);
}
}
}
}