使用php刮刮 - preg_match_all

时间:2012-04-24 12:47:08

标签: php preg-match-all

尝试获取Internet数据量平衡的值 - 脚本应回显146.30mb

所有这些新手,看看所有教程。

如何做到这一点?

<tr >
    <td bgcolor="#F8F8F8"><div align="left"><B><FONT class="tplus_text">Account Status</FONT></B></div></td>
    <td bgcolor="#FFFFFF"><div align="left"><FONT class="tplus_text">You exceeded your allowed credit.</FONT></div></td>
</tr> 

<tr >
    <td bgcolor="#F8F8F8"><div align="left"><B><FONT class="tplus_text">Period Free Time Remaining</FONT></B></div></td>
    <td bgcolor="#FFFFFF"><div align="left"><FONT class="tplus_text">0:00:00 hours</FONT></div></td>
</tr> 

<tr >
    <td bgcolor="#F8F8F8"><div align="left"><B><FONT class="tplus_text">Internet Data Volume Balance</FONT></B></div></td>
    <td bgcolor="#FFFFFF"><div align="left"><FONT class="tplus_text" style="text-transform:none;">146.30 MB</FONT></div></td>
</tr> 

2 个答案:

答案 0 :(得分:1)

PHP可以像JavaScript一样与DOM交互。这远远优于解析标记,因为大多数人都会告诉你错误的方法:

从HTML文件加载

// Start by creating a new document
$doc = new DOMDocument();
// I've loaded the table into an external file, and am loading it into the $doc
$doc->loadHTMLFile( 'htmlpage.html' );
// Since you have six table cells, I'm calling up all of them
$cells = $doc->getElementsByTagName("td");
// I'm grabbing the sixth cell's textContent property
echo $cells->item(5)->textContent;

此代码将“146.30 MB”输出到屏幕。

从字符串加载

如果您将HTML存储在字符串中,您也可以将其加载到文档中。我们将用于加载文件的方法更改为用于从字符串加载的方法:

$str = "<table><tr><td>Foo</td></tr>...</table>";
$doc->loadHTML( $str );

然后我们将继续使用与上面相同的代码来选择单元格,并在输出中显示它们的textContent。

查看DOMDocument班级。

答案 1 :(得分:1)

如果你愿意或已经安装了phpQuery,你可以使用它。

phpQuery::newDocumentFileHTML('htmlpage.html');
echo pq('td:eq(6)')->text();