2014-01-26 79 views
-1

我在刮一個html頁面並試圖獲取文本值。但是當我嘗試比較文本字符串時,它總是返回false。PHP:變量不能與字符串進行比較

<?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,正則表達式,===和其他函數。

+1

什麼是$物品的價值?你是否試圖在你的if子句之前打印它?我不認爲這是一個日期字符串,甚至是一個字符串。 –

+1

'$ item'是一個DOM對象...使用'$ item-> plaintext'來檢索它的內容 – Enissay

回答

2

看起來像Simple HTML DOMfile_get_html)。如果<td>必要的日期,更改行:

$item1 = strtolower(trim($item)); 

要:

$item1 = strtolower(trim($item->plaintext)); // return inner text from tag `<td>` 
+0

感謝它的工作! –

3

你試過var_dump($item)?因爲你可能會發現它是一個DOM元素,而不是一個字符串。

我不知道你在使用什麼DOM庫 - 我自己使用DOMDocument - 但你應該有一個textContent屬性,你可以使用它來獲取元素的......文本內容。

+0

看起來很簡單HTML DOM –

+0

@MichaelBerkowski很可能,由包含文件名來判斷......我應該說「我不知道DOM庫」:D –

+0

是的,我使用簡單的HTML DOM,我犯了一個愚蠢的錯誤。 –

相關問題