php preg_match_all函数提取html数据

php里得到一个html返回值。其中含有一下table。请问如何截取出每个tr下的所有td。或者换个方法,怎么把所有tr,td转换成数组。不知道正则该怎么写,做字符截取的... php里得到一个html返回值。其中含有一下table。请问如何截取出每个tr下的所有td。或者换个方法,怎么把所有tr,td转换成数组。 不知道正则该怎么写,做字符截取的时候得计算长度,每次都不一样,比较麻烦。
求大神指教
<table class="listTable" width="99%" border="1" align="center" >
<tbody>
<tr align="center">
<td colspan="2" rowspan="10">中文1</td>
<td>229104</td>
<td align="left">中文2</td>
</tr>
<tr align="center">
<td colspan="2" rowspan="10">中文1</td>
<td>229104</td>
<td align="left">中文2</td>
</tr>
</tbody>
</table>
展开
 我来答
__峰回路转
推荐于2016-03-18 · TA获得超过714个赞
知道小有建树答主
回答量:605
采纳率:89%
帮助的人:316万
展开全部

你用这个试试,我简单测试了一下。

这个是匹配整个tr的,你看看可行

$str = '<table class="listTable" width="99%" border="1" align="center" >
<tbody>
    <tr align="center">
        <td colspan="2" rowspan="10">中文1</td>
        <td>229104</td>
        <td align="left">中文2</td>
    </tr>
    <tr align="center">
        <td colspan="2" rowspan="10">中文1</td>
        <td>229104</td>
        <td align="left">中文2</td>
    </tr>
</tbody>
</table>';

preg_match_all('/<tr[^>]*>[^<]*<td[^>]*>(.*)<\/td>[^<]*[^<]*<td[^>]*>(.*)<\/td>[^<]*[^<]*<td[^>]*>(.*)<\/td>[^<]*<\/tr>/isU', $str, $matches);

echo "<pre>";
var_dump($matches);
exit;
追问
我用正则测试工具测没匹配到。还请再教教。可以的话,可以加我Q吗
追答
公司不给用qq,可以的话可以加微信。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式