2014-01-26 1 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, regex, === 및 다른 함수를 시도했다.

+1

은 $ 항목의 값이 무엇입니까? if 절 앞에 인쇄 해 보셨습니까? 나는 그것이 날짜 문자열 또는 심지어 문자열이라고 생각하지 않는다. –

+1

'$ item'은 DOM 객체입니다. 콘텐츠를 가져 오기 위해'$ item-> plaintext'를 사용하십시오. – Enissay

답변

2

Simple HTML DOM (file_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

네, Simple HTML DOM을 사용하고 있었는데, 어리석은 실수를 저질렀습니다. –