【发布时间】:2016-09-17 10:17:20
【问题描述】:
我有这些跨度标签:
<div>
<span style="background: url('/wp-content/themes/minimum-child/img/address.png') 0px 2px no-repeat; padding-left: 20px;">CONTENT 1</span>
<span style="background: url('/wp-content/themes/minimum-child/img/email.png') 0px 2px no-repeat; padding-left: 20px;"><a href="mailto:post@post.com">CONTENT 2</a></span>
<span style="background: url('/wp-content/themes/minimum-child/img/tel.png') 0px 2px no-repeat; padding-left: 20px;">CONTENT 3</span>
</div>
我需要在跨度之间获取内容,但我需要将内容分隔为单个变量$address、$email、$phone、$web 等。很明显,我可以使用背景图像的名称作为模式,因为图像的名称仍然相同(address.png、email.png 等)。
到目前为止,我认为有必要使用preg_match_all功能,我已经尝试过,但到目前为止我没有成功。
我尝试过(用于获取$address 变量的地址):
$url="'/wp-content/themes/minimum-child/img/address.png'";
$tag='span style="background: url('.$url.')';
$matches=array();
$pattern = "/<$tag ?.*>(.*)<\/span>/";
preg_match($pattern, $htmlcontent, $matches);
$address=$matches[1];
不幸的是,它不起作用。你知道如何实现它吗?
【问题讨论】:
-
您要捕获的是
SPAN内容(即:CONTENT_1,CONTENT_2等)还是style属性('address.png' 等)? -
嗨,我需要捕获 CONTENT_1 等。模式应该是例如 address.png
标签: php html text preg-match-all