기본적으로 ALL DOMDocument를 사용하는 모든 웹 사이트의 이미지를 가져오고 싶습니다. 하지만 아직 내가 모르는 몇 가지 이유 때문에 내 HTML을로드 할 수 없습니다.DOMDocument를 사용하여 웹 사이트의 모든 이미지를 긁어 내기
아무 것도 인쇄되지 않습니다. 또는 코드에 문제가 있습니까?
기본적으로 ALL DOMDocument를 사용하는 모든 웹 사이트의 이미지를 가져오고 싶습니다. 하지만 아직 내가 모르는 몇 가지 이유 때문에 내 HTML을로드 할 수 없습니다.DOMDocument를 사용하여 웹 사이트의 모든 이미지를 긁어 내기
아무 것도 인쇄되지 않습니다. 또는 코드에 문제가 있습니까?
You don't get a result because $dom->loadHTML() expects html. You give it an url, you first need to get the html of the page you want to parse. You can use file_get_contents() for that.
내 이미지 잡기 클래스에서 이것을 사용했습니다. 나를 위해 잘 작동합니다. PHP로는 '@'그 함수에 대한 모든 오류 메시지를 숨 깁니다`;
$html = file_get_contents('http://www.google.com/');
$dom = new domDocument;
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
echo $image->getAttribute('src');
}
개체 클래스에 특성 클래스가 다시 정의되었습니다. '$ dom = 새 DOMDocument; \t \t $ htmls = file_get_contents ("http://philcooke.com/inspiration-happens-but-the-best-ideas-take-time/"); $ dom-> loadHTML ($ htmls); ' – Leonid
당신의 대답은 거의 옳았습니다. '$ dom-> loadHTML ($ html)'앞에 "@"문자를 추가하면됩니다. – Leonid
'$ dom-> loadHTML ($ html)'앞에 '@'를 붙이면 오류를 억제 할 수 있습니다. html을 먼저 청소하십시오. '''$ tidy = tidy_parse_string ($ html); $ html = $ tidy-> html() -> value;'''그러나 이것은 너무 많을 수도 있습니다. –
당신이 오류 메시지가 그나마 이유는 아마도이 라인'@ $ dom-> loadHTML의 ($ URL)입니다. –
나는 오래 전에 그것을 제거했지만 아직 결과가 없습니다 ... – Leonid
'$ dom-> loadHTML()'이 html을 기대하기 때문에 당신은 결과를 얻지 못합니다. 당신은 그것에게 URL을주고, 당신은 먼저 구문 분석하고자하는 페이지의 html을 얻을 필요가있다. 'file_get_contents()'를 사용하면된다. (답변보기) –