0

我有一个变量 $html

存储此代码的位置

<form action="track_mobile.asp" method="post" name="TrackMobile">
<table width="99%" height="55" border="0" cellpadding="2" cellspacing="0">
                  <tr>
                    <td class="Heading2" colspan="2">&nbsp;Track Any Mobile Location</td>
                  </tr>

<tr>
<td width="21" valign="top" rowspan="2" class="s2stextbox" valign="top"><img src="../images/operators_logo/Tata.png" width="134" height="121" align="left"> </td>
<td width="897" valign="top" class="s2stextbox"><font size="2"><b>Mobile Number:     </b>918888888888</font></td>
</tr>
        <tr>
           <td width="897" valign="top" class="s2stextbox" valign="top"><font size="2">      <b>User Name:</b> We are unable to trace the Name for this Mobile Number<br>
<font size="2"><b>Mobile Operator Name:</b> TATA TELESERVICES<br>
<b>State/Region: </b>Maharashtra</font></td>
</tr>   </table>
</form> 

其中“:(分号)”之后的每个项目都是随机的,每次都不同。

请给我正确的语法来得到回声

Mobile Number: 918888888888
User Name: We are unable to trace the Name for this Mobile Number
Mobile Operator Name: IDEA
State/Region: Maharashtra

其中这些是随机生成的,不同的时间,所以 preg_match 搜索这个位置并回显相同位置的文本

918888888888
We are unable to trace the Name for this Mobile Number
IDEA
Maharashtra
4

2 回答 2

0

这是一项工作XPath(参见 [ SimpleXMLElement::xpath][1],您的 XPath 看起来像:

918888888888

/form/table/tr[1]/td[2]/font[substring-after(./text(), ':') -> 

我们无法追踪此手机号码的姓名

/form/table/tr[2]/td[1]/font[1][substring-after(./text(), ':')

塔塔电信

/form/table/tr[2]/td[1]/font[2][substring-before(substring-after(./text(), ':'), 'State')

马哈拉施特拉邦

/form/table/tr[2]/td[1]/font[2][substring-after(./text(), 'Region')
于 2013-09-04T17:18:16.463 回答
0

1. 去除 HTML 标签

$text = strip_tags($html);

2. 使用列前的文字进行匹配

我只是更改正则表达式并显示每个值匹配(.*)(遵循模式直到行尾的所有内容:

preg_match('/Mobile Number: (.*)/', $html, $matches);
echo $matches[1];
preg_match('/User Name: (.*)/', $html, $matches);
echo $matches[1];
preg_match('/Mobile Operator Name: (.*)/', $html, $matches);
echo $matches[1];
preg_match('/State/Region: (.*)/', $html, $matches);
echo $matches[1];
于 2013-09-04T18:19:41.577 回答