PHP抓取页面后正则截取值,只要中间的值解决方法
PHP抓取页面后正则截取值,只要中间的值
页面取得如下值
<dt>深圳市ABC电子有限公司</dt>
<dd><span>联系人:</span>张先生</dd>
<dd style="color: rgb(68, 153, 0);"><span>网址:</span><span class="website">Http://www.ABCDE.com</span></dd>
<dd><span>传真:</span></dd>
<dd><span>电话:</span>0755-888888888</dd>
<dd><span>邮箱:</span>sales@ABCDE.com</dd>
<dd><span>地址:</span>深圳市福田区上步南路ABCDE大厦R座9D</dd>
怎样用最简短的正则取得公司名、联系人、传真、电话、邮箱、地址等变量信息呢?基本上也就是分别取出<dt></dt>,<dd></dd>等中间的值。
------解决方案--------------------
页面取得如下值
<dt>深圳市ABC电子有限公司</dt>
<dd><span>联系人:</span>张先生</dd>
<dd style="color: rgb(68, 153, 0);"><span>网址:</span><span class="website">Http://www.ABCDE.com</span></dd>
<dd><span>传真:</span></dd>
<dd><span>电话:</span>0755-888888888</dd>
<dd><span>邮箱:</span>sales@ABCDE.com</dd>
<dd><span>地址:</span>深圳市福田区上步南路ABCDE大厦R座9D</dd>
怎样用最简短的正则取得公司名、联系人、传真、电话、邮箱、地址等变量信息呢?基本上也就是分别取出<dt></dt>,<dd></dd>等中间的值。
------解决方案--------------------
- PHP code
$str=<<<html <dt>深圳市ABC电子有限公司</dt> <dd><span>联系人:</span>张先生</dd> <dd style="color: rgb(68, 153, 0);"><span>网址:</span><span class="website">Http://www.ABCDE.com</span></dd> <dd><span>传真:</span></dd> <dd><span>电话:</span>0755-888888888</dd> <dd><span>邮箱:</span>sales@ABCDE.com</dd> <dd><span>地址:</span>深圳市福田区上步南路ABCDE大厦R座9D</dd> html; preg_match_all('/<\/span>(.*?)<\/dd>|<dt>(.*)<\/dt>/m',$str,$arr); print_r($arr);
------解决方案--------------------
- PHP code
<?php $str=<<<STR <dt>深圳市ABC电子有限公司</dt> <dd><span>联系人:</span>张先生</dd> <dd style="color: rgb(68, 153, 0);"><span>网址:</span><span class="website">Http://www.ABCDE.com</span></dd> <dd><span>传真:</span></dd> <dd><span>电话:</span>0755-888888888</dd> <dd><span>邮箱:</span>sales@ABCDE.com</dd> <dd><span>地址:</span>深圳市福田区上步南路ABCDE大厦R座9D</dd> STR; preg_match_all('/<d[dt][^>]*>(?:<span>(.*?):<\/span>)?(?:<span[^>]*>)?(.*?)(?:<\/span>)?<\/d[dt]>/m',$str,$matches); print_r($matches[1]); print_r($matches[2]); /*Array ( [0] => [1] => 联系人 [2] => 网址 [3] => 传真 [4] => 电话 [5] => 邮箱 [6] => 地址 ) Array ( [0] => 深圳市ABC电子有限公司 [1] => 张先生 [2] => Http://www.ABCDE.com [3] => [4] => 0755-888888888 [5] => sales@ABCDE.com [6] => 深圳市福田区上步南路ABCDE大厦R座9D ) */
------解决方案--------------------
呃...
还需要改进的话分别按照:切割一下字符串就出来了...
- PHP code
$str=<<<HTML <dt>深圳市ABC电子有限公司</dt> <dd><span>联系人:</span>张先生</dd> <dd style="color: rgb(68, 153, 0);"><span>网址:</span><span class="website">Http://www.ABCDE.com</span></dd> <dd><span>传真:</span></dd> <dd><span>电话:</span>0755-888888888</dd> <dd><span>邮箱:</span>sales@ABCDE.com</dd> <dd><span>地址:</span>深圳市福田区上步南路ABCDE大厦R座9D</dd> HTML; echo strip_tags($str);