php中的preg_match_all捕获特定父标记的特定文本

时间:2017-04-22 14:12:54

标签: php

我需要解析的文本是

<td width="35%"><small>Bourke AP AWS</td> <!--$94703-->
  <td>&nbsp;</td>
  <td align="center"><small>ESE  13</small></td>
  <td align="right"><small> 21</small></td>
  <td align="right"><small> 16</small></td>
  <td align="right"><small> 21</small>

我需要能够在最终的</small>标记之前提取数字“21”,但我还需要代码才能将此数字用于页面中的唯一位置,例如,名称“Bourke AP AWS”或“”,它们是天气观测站点的唯一标识符。该页面具有如上所述的许多其他文本块,唯一区别在于它们是名称或注释掉的站号。

我的代码

preg_match_all('/<td width="35%"><small>Bourke AP AWS<\/td>(.*?).*?<td>([^<]+)<\/td>.*?<td align="center"><small>(.*?)<\/small><\/td>.*?<td align="center"><small>(.*?)<\/small><\/td>.*?<td align="right"><small>(.*?)<\/small><\/td>.*?<td align="right"><small>(.*?)<\/small><\/td>.*?<td align="right"><small>(.*?)<\/small>/s', $datamaxtemp, $matchnewtemp, PREG_SET_ORDER);
$ymaxtemppmq = strip_tags($matchnewtemp[0][0]); 
当我尝试从上面回显$ ymaxtemppmq时,

什么都不返回。我的理解是它应该给我第一个捕获的文本(在这种情况下),但似乎并非如此。

在这种情况下,任何帮助都将受到高度赞赏。

0 个答案:

没有答案