PHP正则表达式取多个标签属性问题
<aid="btlist10"st="1"ditem="true"class="itemmulti-lineswith-avatar"ftios="1"ck="TlRZN...
<a id="btlist10" st="1" ditem="true" class="item multi-lines with-avatar" ftios="1" ck="TlRZNFlUSTRNakk9" ft="1" data="ABC123456" ix="10" analytical="false" s1="ABC123" jxd1="123" jxd2="ABC123" onclick="openmenu($(this))">
<a id="btlist11" st="1" ditem="true" class="item multi-lines with-avatar" ftios="1" ck="TlRZNFlUSTRNakk9" ft="1" data="ABC123456" ix="10" analytical="false" s1="ABC123" jxd1="123" jxd2="ABC123" onclick="openmenu($(this))">
<a id="btlist12" st="1" ditem="true" class="item multi-lines with-avatar" ftios="1" ck="TlRZNFlUSTRNakk9" ft="1" data="ABC123456" ix="10" analytical="false" s1="ABC123" jxd1="123" jxd2="ABC123" onclick="openmenu($(this))">
多个标签 我想取出其中的data的属性值和s1的属性值 返回数组 想用preg_match不会表达式 求大神了 展开
<a id="btlist11" st="1" ditem="true" class="item multi-lines with-avatar" ftios="1" ck="TlRZNFlUSTRNakk9" ft="1" data="ABC123456" ix="10" analytical="false" s1="ABC123" jxd1="123" jxd2="ABC123" onclick="openmenu($(this))">
<a id="btlist12" st="1" ditem="true" class="item multi-lines with-avatar" ftios="1" ck="TlRZNFlUSTRNakk9" ft="1" data="ABC123456" ix="10" analytical="false" s1="ABC123" jxd1="123" jxd2="ABC123" onclick="openmenu($(this))">
多个标签 我想取出其中的data的属性值和s1的属性值 返回数组 想用preg_match不会表达式 求大神了 展开
1个回答
展开全部
PHP正则表达式 /<a.*?data="(.*?)".*?s1="(.*?)"/is 取第一和第二捕获组的数据
完整的PHP程序如下(用preg_match_all函数返回所有匹配)
<?php
$str = '<a id="btlist10" st="1" ditem="true" class="item multi-lines with-avatar" ftios="1" ck="TlRZNFlUSTRNakk9" ft="1" data="ABC123456" ix="10"
analytical="false" s1="ABC123" jxd1="123" jxd2="ABC123" onclick="openmenu($(this))"><a id="btlist11" st="1" ditem="true" class="item multi-lines with-avatar"
ftios="1" ck="TlRZNFlUSTRNakk9" ft="1" data="ABC123456" ix="10" analytical="false" s1="ABC123" jxd1="123" jxd2="ABC123" onclick="openmenu($(this))"><a
id="btlist12" st="1" ditem="true" class="item multi-lines with-avatar" ftios="1" ck="TlRZNFlUSTRNakk9" ft="1" data="ABC123456" ix="10" analytical="false"
s1="ABC123" jxd1="123" jxd2="ABC123" onclick="openmenu($(this))">';
preg_match_all ('/<a.*?data="(.*?)".*?s1="(.*?)"/is', $str, $matches);
for ($i=0; $i<count($matches[0]); $i++) {
echo "data=".$matches[1][$i]."s1=".$matches[2][$i]."\n";
}
?>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询