我试图从网页中提取此数据 (马克佩特尔),我想它是一个字符串,不是超链接。这里是我的代码︰
当我回波,这是我在我的浏览器得到的结果︰ 马克 PATERÂ ─。我不能够提取此值作为字符串...它是一个超链接。当我打开源我得到这︰
<a class="filter_list" href="" onclick="return fillFilterForm(document.formFilter1, 'nation_party_name', 'MARK PATGHL');"><font face="Verdana" size="1" color="BLACK">MARK PATERÂ Â </font></a>string(0) ""
这里是源代码的来自回声 $html 的一部分︰
<tr >
<td align="justify" width="5%" nowrap><font face="Verdana" size="1">
*
<a class="list_2" href="details.asp
?doc_id=2&index=0&file_num=07">View</a> </font>
</td>
<td width="20%" align="justify" ><a class="filter_list" href="" onClick="return fillFilterForm(document.formFilter1, 'party_name', 'NEW YORK GORDI’);”><font face="Verdana" size="1" color="BLACK">NEW YORK GORDI </font></td>
<td width="15%" align="justify" nowrap><a class="filter_list" href="" onClick="return fillFilterForm(document.formFilter1, ’Name’, ‘MARK PATER );”><font face="Verdana" size="1" color="BLACK">MARK PATER </font></td>
代码︰
$html = file_get_html($link);
//echo htmlspecialchars ($html);
// a new dom object
$dom = new domDocument;
// load the html into the object
$dom->loadHTML($html);
$tables = $dom->getElementsByTagName('td');
echo get_inner_html($tables->item(26));
function get_inner_html( $node )
{
$innerHTML= '';
$children = $node->childNodes;
foreach ($children as $child)
{
$innerHTML .= $child->ownerDocument->saveXML( $child );
}
return $innerHTML;
}
enter code here
请尝试使用正则表达式
尝试构建要从 HTML 中提取字符串的正则表达式。
HTML 使用 SimpleXML 遍历 DOM 有时是非常疼痛的头的过程。
你的情况示例
$html = "<tr >
<td align=\"justify\" width=\"5%\" nowrap><font face=\"Verdana\" size=\"1\">
*
<a class=\"list_2\" href=\"details.asp?doc_id=2&index=0&file_num=07\">View</a> </font>
</td>
<td width=\"20%\" align=\"justify\" ><a class=\"filter_list\" href=\"\" onClick=\"return fillFilterForm(document.formFilter1, 'party_name', 'NEW YORK GORDI';);\"><font face=\"Verdana\" size=\"1\" color=\"BLACK\">NEW YORK GORDI </font></td>
<td width=\"15%\" align=\"justify\" nowrap><a class=\"filter_list\" href=\"\" onClick=\"return fillFilterForm(document.formFilter1, 'Name', 'MARK PATER';);\"><font face=\"Verdana\" size=\"1\" color=\"BLACK\">MARK PATER </font></td>";
preg_match_all('/(?:<td.+><a.+><font.+>)([\w\s]+)(?:( )+<\/font><\/td>)/', $html, $filtered);
print_r( $filtered[1] );
//Output: Array ( [0] => NEW YORK GORDI [1] => MARK PATER )