十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
?php
创新互联是一家专业提供苏尼特左企业网站建设,专注与网站设计制作、网站建设、H5网站设计、小程序制作等业务。10年已为苏尼特左众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
$str='b37ba964bb7dfab1869e1cf8';
$preg= "/\d/is";
preg_match_all($preg,$str,$arr);
$temp=implode('',$arr[0]);
echo $temp;//匹配的数字
echo 'br/'. substr($temp,1,4);//第2位开始取4个
echo 'br/'.substr($temp,2,5);//第3位开始取5个
?
$string_1 = '
tr
td width=15% align=rightb电话:/b/td
td width=85%86666947/td
/tr
tr
td align=right b地址:/b/td
td 春熙路8号/td
/tr
tr
td align=right b人均:/b/td
td span class=f_red_14b14/span元/td
/tr
tr
td align=rightb菜系:/b/td
td快餐/小吃/td
/tr
'
;
preg_match_all ("|td[^]*([^(b)].*)/td|", $string_1, $out, PREG_PATTERN_ORDER);
print_r($out[1]);
---------------------------------------------------------
输出结果为:
Array
(
[0] = 86666947
[1] = 春熙路8号
[2] = 快餐/小吃
)
用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]);
?
运行结果
你这里内容是固定的日期时间格式,直接写个相应的格式就行了啊,其他不用管
(\d{4}-\d{2}-\d{2})
正则提取div数据主要是使用PHP的file_get_content()函数。
具体示例:
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
$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'}