preg_match没有读取表之间的内容

时间:2010-07-12 11:14:27

标签: preg-match preg-match-all php

preg_match_all('|<table cellspacing="0" cellpadding="0" summary="Flight Timetable search results" id="timeTable">(.*?)</table>|', $read, $foo, PREG_SET_ORDER);
print_r($foo);

输出为

Array()

我犯了错误

见人,

其实我想从这个URL

中获取确切的详细信息

我想从此网址中选择此详细信息

08:35 9W5048 TORONTO预期1358三号航站楼

所以我尝试了这个片段,但它像

一样抛出错误

这是我的代码段

  

$ read = file_get_contents(“http://www.heathrowairport.com/portal/site/heathrow/template.PAGE/menuitem.a43f3a72926ca3b1b0c52a499328c1a0/?javax.portlet.begCacheTok=token&javax.portlet.endCacheTok=token&javax.portlet.tpst=bde211e38117ef94303fde9faca12635&javax.portlet.prp_bde211e38117ef94303fde9faca12635_flightRoute=&javax.portlet.prp_bde211e38117ef94303fde9faca12635_flightNumber=9W5048&javax.portlet.prp_bde211e38117ef94303fde9faca12635_flightTerminal=”);   // echo $ read;     preg_match_all('/(。?)&lt; / table&gt; / si',$ read,$ foo,PREG_SET_ORDER);     $ read1 = $ foo [0] [0];     preg_match_all('/(.?)&lt; / tbody&gt; / si',$ read1,$ foo1,PREG_SET_ORDER);     的print_r($ foo1 [0] [0]);

我得错误

Notice: Undefined offset: 0 in E:\wamp\www\plugin\read-airport-arraiwals.php on line 6

Notice: Undefined offset: 0 in E:\wamp\www\plugin\read-airport-arraiwals.php on line 8

1 个答案:

答案 0 :(得分:1)

preg_match_all('/timeTable" .*<tbody>(.*?)<\/table>/smU', $read, $foo, PREG_SET_ORDER);
preg_match_all('/<(th|td).*>(.*)<\/(th|td)>/smU', $foo[0][1], $result, PREG_SET_ORDER);
print_r($result);

您将获得所需的数据。快速回答,因为我没有时间为此创建单个模式,但是这个模式将完成这项工作。