php正则匹配html中带class的div并选取其中内容的方法

 这篇文章主要介绍了php正则匹配html中带class的div并选取其中内容的方法,涉及curl的使用及正则匹配的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

 
 

本文实例讲述了php正则匹配html中带class的div并选取其中内容的方法。分享给大家供大家参考。具体分析如下:

先看一段html代码:

 

代码如下:
<div class="chartInfo">
<div class="line"></div>
<div class="tideTable">
<strong>潮汐表</strong>数据仅供参考
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tbody><tr>
<td width="100"><p><span>潮时 (Hrs)</span></p></td>
<td width="100"><p>00:58</p></td>
<td width="100"><p>05:20</p></td>
<td width="100"><p>13:28</p></td>
<td width="100"><p>21:15</p></td>
</tr>
<tr>
<td><p><span>潮高 (cm)</span></p></td>
<td width="100"><p>161</p></td>
<td width="100"><p>75</p></td>
<td width="100"><p>288</p></td>
<td width="100"><p>127</p></td>
</tr>
</tbody></table>
<h2>时区:-1000 (东10区) 潮高基准面:在平均海平面下174CM</h2>
</div>
<div class="chart">
</div>
</div>

 

这是源程序里边的一部分,为了容易看懂,删减了一大部分,只取<div class="tideTable"> div块中的内容

首页先用file_get_content或curl获取内容部分,我用的是curl。

代码如下:
$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的看代码,打印看一下效果。

希望本文所述对大家的php程序设计有所帮助。

时间: 2024-08-07 10:43:57

php正则匹配html中带class的div并选取其中内容的方法的相关文章

php正则匹配html中带class的div并选取其中内容的方法_php技巧

本文实例讲述了php正则匹配html中带class的div并选取其中内容的方法.分享给大家供大家参考.具体分析如下: 先看一段html代码: 复制代码 代码如下: <div class="chartInfo">   <div class="line"></div>  <div class="tideTable">       <strong>潮汐表</strong>数据仅供参

正则验证-java 正则匹配数据中的金钱数字

问题描述 java 正则匹配数据中的金钱数字 A文件数据:1001分店20121231,元旦之际祝您新年快乐身体健康万事如意.您共欠担保公司¥103959.50元.请您尽快偿还欠款,以免扩大损失.您的借款已逾期6天,欠款金额为1988.20元,逾期将影响信用记录,请即刻缴纳.截止 2015年07月01日 您应还金额为:4128元.如有疑问,请联系王先生1101101010.你好,截至到昨天夜里23:59,你欠款34532.32元,请您尽快偿还欠款,以免扩大损失.你好,截至到昨天夜里23:59,你

java用正则匹配运算符中的*号报错

问题描述 java用正则匹配运算符中的*号报错 这是用正则匹配一个四则运算算式中有几个数字的程序,将 * 号放在最后可以得出正确结果,但是将 * 号放中间的话就会报错,这是为什么?要怎么改? public class Blank { public static int f(String s) { return s.split("[+-\*/]").length; } public static void main(String[] args) { System.out.println(

php正则匹配文章中的远程图片地址并下载图片至本地_php技巧

使用php的正则表达式来实现: $content = '这里是文章内容,这里插入一张图片测试 <img src="XXXXXXXXXXXXXXXXXXXX">'; $content = stripslashes ( $content ); $img_array = array (); // 匹配所有远程图片 preg_match_all ( "/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|bmp|png

shell脚本正则匹配文件中的Email并写入到文件中代码分享_linux shell

代码如下: 复制代码 代码如下: #! /bin/bashfunction read_file(){    for line in `cat $1`    do        if [ `echo $line |grep "^[a-zA-Z0-9_-]*@[A-Za-z_-]*\.[a-zA-Z_-]*$"` ];then            echo $line >> result.txt        else            echo "---&qu

PHP正则匹配字符串中的中文

我们先要明白 中文双字节字符编码范围 1. GBK (GB2312/GB18030) x00-xff GBK双字节编码范围 x20-x7f ASCII xa1-xff 中文 gb2312 x80-xff 中文 gbk 2. UTF-8 (Unicode) u4e00-u9fa5 (中文) x3130-x318F (韩文 xAC00-xD7A3 (韩文) u0800-u4e00 (日文) 获取指定的中文与字符 例1  代码如下 复制代码 <?php $str = '正则如何匹配中文字在某中文字符串

php正则匹配字符串中js文件例子

将一个网页里面所有引入的js文件都匹配出来,在php中用正则表达式来实现,方式如下: <?php  header("Content-type:text/html;charset=utf-8");  //匹配一个网页中引入的js文件  $pageContent = file_get_contents('http://www.daixiaorui.com/cat_2.html');  preg_match_all('/<script.*?src\s*=\s*[\"|\

php正则匹配字符串中是否有日期数据

 代码如下 复制代码 <?php if(preg_match("/d{4}-d{2}-d{2}/","开始大幅拉萨大家2012-02-02 12:12:12舍得离开房间")){ echo 'ye'; }else{ echo 'no'; } ?>

Linux中使用grep命令搜索文件名及文件内容的方法

  从文件中搜索并显示文件名 当你从不止一个的文件中搜索时,默认它将显示文件名: 代码如下: grep "word" 文件名 grep root /etc/* 示例输出: 代码如下: /etc/bash.bashrc: See "man sudo_root" for details. /etc/crontab:17 * * * * root cd / && run-parts --report /etc/cron.hourly /etc/cronta