2017-04-17 1 views
1

PHP와 간단한 HTML DOM Parser를 사용하여 웹 사이트에서 노래 가사를 시도하고 있습니다. 노래 가사는 div의 "가사"클래스에서 열립니다. 다음은 div를 잡고 표시하는 데 사용하는 코드입니다. 현재는 내 웹 페이지에 "배열"만 반환합니다. 배열을 jsonify 할 때 배열이 비어 있음을 알 수 있습니다.PHP 간단한 HTML DOM 파서가 div를 배열로 반환합니다.

<?php 
include('simple_html_dom.php'); 
$data = file_get_contents("https://example.com/songlyrics"); 
$html = str_get_html($data); 
$lyr = $html->find('div.lyrics'); 
echo $lyr; 
?> 

나는 단순 HTML 돔 파서가 제대로 포함되고 있음을 알고, 나는 아무 문제 내가 코드에 몇 가지 작은 변화로 $ html로 에코 그러나 나는 에코 수없는 것, 전체 웹 페이지를 표시이 없습니다 이 부서 야. 내 코드에 문제가 있습니까? $ lyr이 배열을 반환하는 이유는 무엇입니까?

+0

대부분의 클래스 모음은 첫 번째 요소 인'-> find ('div.lyrics, 0')'를 가리킨다. 두 번째 인자를 염두에 둔다.'echo' – Ghost

+0

@Ghost, 고맙다. –

답변

1

코드에 아무 문제가 없습니다.

왜 $ lyr이 배열을 반환합니까?

클래스가 여러 번 사용 된 것으로 간주되기 때문입니다. 대신 var_dump($lyr) 인 경우 해당 클래스 이름으로 발견 된 모든 div 요소가 표시되어야합니다.

echo $lyr[0] 또는 $html->find('div.lyrics',0)을 사용하여 특정 div 요소를 선택할 수 있습니다.

+0

var_dump는 앞으로 유용 할 것입니다. 나는 PHP에 너무 친숙하지 않아서 저에게 약간의 시간을 절약 해주었습니다. 고스트 코멘트는 이미 내 문제를 해결했지만, 답변이므로 올바른 것으로 표시하겠습니다. –

+0

그건 그렇지 않습니다. 'find '는 두 번째 인자를 사용하지 않는 한 항상 배열을 반환합니다. 당신이 익숙해 져야하는 것은 혼란스러운 일입니다. 또한 var_dump를 사용하지 마십시오. 왜 시도해보십시오. – pguardiario

+0

@pguardiario 정보를 제공해 주셔서 감사합니다. 왜 var_dump를 사용하지 않을까요? –