简单的html dom从Attribute获取内嵌的背景图像URL

时间:2015-06-25 00:01:53

标签: php simple-html-dom

我尝试使用简单的HTML DOM从HTML属性中获取CSS背景图片网址。 这个代码

$String=' <div class="Wrapper"><i style="background-image: url(https://example.com/backgroud-1035.jpg);" class="uiMediaThumbImg"></i></div>';
$html = new simple_html_dom();
$html->load($String); 
foreach($html->find('i') as $a0)
$src[$i++]=$a0->style;
foreach( $src as $css  ) 
print($css);

输出如下: -

background-image: url(https://example.com/backgroud-1035.jpg); 

我想要的是从其他CSS标签中剥离背景Url。像这样     https://example.com/backgroud-1035.jpg

2 个答案:

答案 0 :(得分:6)

您可以使用正则表达式删除括号中的文本。

foreach($html->find('i') as $a0){
    $style = $a0->style;
    preg_match('/\(([^)]+)\)/', $style, $match);
    $src[$i++] = $match[1];
    //echo $match[1];
}

答案 1 :(得分:0)

也许您找到了答案,但是对于谁没有找到答案 我将使用explode()函数,以便将字符串分成一个数组, 详细了解explode()函数here。 首先,我将$ css变量拆分为数组。数组是这样的:

background-image: url(https://example.com/backgroud-1035.jpg);" 
Array ( [0] => background-image: [1] => https://example.com/backgroud-1035.jpg);

然后将['1']分解为数组,然后看起来像这样

Array ( [0] => https://example.com/backgroud-1035.jpg [1] => ; )

然后打印['0']。

// it will output https://example.com/backgroud-1035.jpg 

完整代码:

    $String=' <div class="Wrapper"><i style="background-image: 
    url(https://example.com/backgroud-1035.jpg);" class="uiMediaThumbImg"></i></div>';
    $html = new simple_html_dom();
    $html->load($String); 
    foreach($html->find('i') as $a0)
    $src[$i++]=$a0->style;
    foreach( $src as $css  ) 
    
    $explode1 = explode("url(",$css);
    $explode2 = explode(")",$explode1['1']);
    print_r ($explode2['0']);