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);
                }
            }
        }
    }