正则提取div数据主要是使用PHP的file_get_content()函数。
创新互联建站是专业的温泉网站建设公司,温泉接单;提供成都网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行温泉网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
具体示例:
HTML代码:
div class="chartInfo"
div class="line"/div
div class="tideTable"
strong潮汐表/strong数据仅供参考
table width="500" border="0" cellspacing="0" cellpadding="0"
tbodytr
td width="100"pspan潮时 (Hrs)/span/p/td
td width="100"p00:58/p/td
td width="100"p05:20/p/td
td width="100"p13:28/p/td
td width="100"p21:15/p/td
/tr
tr
tdpspan潮高 (cm)/span/p/td
td width="100"p161/p/td
td width="100"p75/p/td
td width="100"p288/p/td
td width="100"p127/p/td
/tr
/tbody/table
h2时区:-1000 (东10区) 潮高基准面:在平均海平面下174CM/h2
/div
div class="chart"
/div
/div
首页先用file_get_content或curl获取内容部分
PHP的正则处理程序:
?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );
$return = curl_exec( $ch );
curl_close( $ch );
$regex4="/div class=\"tideTable\".*?.*?\/div/ism";
if(preg_match_all($regex4, $return, $matches)){
print_r($matches);
}else{
echo '0';
}
?
用PHP正则表达式匹配,就可以提取class里面的数据,并将no去除,完整的PHP程序如下
?php
$str='div class="lot-nums"span class="no7"/spanspan class="no8"/spanspan class="no5"/spanspan class="no9"/spanspan class="no2"/spanspan class="no4"/spanspan class="no6"/spanspan class="no0"/spanspan class="no3"/span span class="no1"/span/div';
$regex='/span class="no(\d+)"/i';
preg_match_all($regex,$str,$result);
print_r($result[1]);
?
运行结果
可用如下的代码来实现:
?php
$str1="|1234|#2354#@2314@
|1314|#2154#@2214@
|1234|#2354#@2314@
|1314|#2154#@2214@";
if(preg_match_all("/\|(\d{4})\|\#(\d{4})\#\@(\d{4})\@/m",$str1, $out, PREG_PATTERN_ORDER))
for($i=0;$icount($out[0]);$i++)
{
echo "{'".$out[1][$i]."','".$out[2][$i]."','".$out[2][$i]."'}br/";
}
?
效果如下所示:
{'1234','2354','2354'}
{'1314','2154','2154'}
{'1234','2354','2354'}
{'1314','2154','2154'}
现获取此div的html串,然后处理。
例如:
ul
liMa hrMef="hMtMtp://xxx1" tarMget="_blaMnk" claMss=""/Ma/li
liMa hrMef="hMtMtp://xxx2" targMet="_blaMnk" claMss=""/Ma/li
/ul
正则:hMtMtp.+?(?=".+/a.*/li)
输出:
hMtMtp://xxx1
hMtMtp://xxx2
(把上面大写的M都去掉)