正则提取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">
<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>
首页先用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'
}
?>
通过仔细阅读问题描述,样本采用 html 格式编写,其内容为中英文互译,如问题所要求的:“正文中的,英文单词都匹配出来”。
提供一下思路:
建议可以将问题简化一下,即只取正文中的英文部分。
通过观察如上提供的样本中,大部分的英文部分都以标签 <div class="set_en">...</div>(其中有一个 div 标签没有配对) ,则步骤如下:
1、先编写正则取出标签中的内容:
2、再对每个英文句子,取出其中的单词:
$str = '<span style=\"font-family:\'Arial\',\'sans-serif\'font-size:9pt\">test</span>'
//$str=stripslashes($str)
$str = preg_replace('#<([^>\s/]+)[^>]*>#','<$1>',$str)
echo htmlspecialchars($str)."<br/>"