我尝试使用简单的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
答案 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']);