是否可以仅使用PHP
?
例如。如果这是以下HTML
:
<td class="header subject">Text</td>
如何从代码中获取Text
,然后echo
呢?
我认为这样可行:
<?
preg_match("'<td class=\"header subject\">(.*?)</td>'si", $source, $match);
if($match) echo "result=".$match[1];
?>
但$source
变量必须是整个页面。
注意:header subject
类只有一个实例,因此多个标签应该没有问题。
答案 0 :(得分:2)
您应该使用DOMDocument类解析文本,并抓取元素的textContent
。
$html = '<td class="header subject">Text</td>';
$dom = new DOMDocument();
$dom->loadHTML( $html );
// Text
echo $dom->getElementsByTagName("td")->item(0)->textContent;
或者,如果您需要循环浏览多个td
元素并仅显示具有类值"header subject"
的元素的文本,则可以执行以下操作:
$tds = $dom->getElementsByTagName("td");
for ( $i = 0; $i < $tds->length; $i++ ) {
$currentTD = $tds->item($i);
$classAttr = $currentTD->attributes->getNamedItem("class");
if ( $classAttr && $classAttr->nodeValue === "header subject" ) {
echo $currentTD->textContent;
}
}
答案 1 :(得分:1)
假设您的问题是因为您不知道如何解释该页面,您可能想尝试这个:
<?php
$lines = file("/path/to/file.html");
foreach($lines as $i => $line)
{
if (preg_match("'<td class=\"header subject\">(.*?)</td>'si", $line, $match))
{
echo "result=". $match[$i];
}
}
?>