我正在抓取一个html页面并尝试获取文本值。但是当我尝试比较文本字符串时,它总是返回false。
<?php
include('simple_html_dom.php');
$url = "http://google.com";
$date = "date";
$html = file_get_html($url);
foreach($html->find('table.tablehead') as $table)
foreach($table->find('tr') as $row)
{
foreach($row->find('td') as $item)
{
$item1 = strtolower(trim($item));
if($item1 == $date)
echo $item->.' ';
}
echo '<br/>';
}
?>
“if($ item1 ==”date“)”行总是返回false。我已经尝试过strcmp,regex,===和其他函数。
答案 0 :(得分:3)
你试过var_dump($item)
吗?因为你可能会发现它是一个DOM元素,而不是一个字符串。
我不知道你正在使用什么DOM库 - 我自己使用DOMDocument - 但是你应该使用textContent
属性来获取元素......好吧,文本内容。
答案 1 :(得分:2)
看起来为Simple HTML DOM
(file_get_html
)。如果需要<td>
中的日期,请更改行:
$item1 = strtolower(trim($item));
要:
$item1 = strtolower(trim($item->plaintext)); // return inner text from tag `<td>`