$ dom-> loadHTML 대신 $ dom-> loadHTMLFile()을 사용해보십시오. 그래서 ...
$html = "http://www.ebay.co.uk/itm/190706137456?_trkparms=clkid%3D1088812801530482649&_qi=RTM944765";
$dom = new domDocument();
$dom->loadHTMLFile($html);
foreach() 루프에서 이미지 유형을 필터링하고 파일 이름 만 가져올 수 있습니다. 이 같은 시도 :
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
$filename = basename($image->getAttribute('src'));
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if ($ext == 'jpg') {
echo $filename . '<br>';
}
}
또한 이미지의 폭과 높이에 의해 필터링 할 수 있습니다,하지만 너비와 높이를 찾는 방법과 이상한 것으로 보인다. 당신은
$width = $image->getAttribute('width');
$height = $image->getAttribute('height');
... 그것은 폭 = "xxx는"높이 = "YYY"을 뱉어 것입니다 ... 이러한 속성을 사용하여 상상 것 ...하지만 그렇지 않습니다. 대신 스타일 속성이 필요합니다. 그래서 그걸 명심하십시오. 즉, 너비와 높이에 대해서도 위와 비슷한 솔루션을 사용할 수 있습니다. 좋아요 :
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
$filename = basename($image->getAttribute('src'));
$width = $image->getAttribute('width');
$height = $image->getAttribute('height');
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if ($ext == 'jpg' && ($width > 20 && $height > 10)) {
echo $filename . "($width x $height)" . '<br>';
}
}
잘하면 그게 효과가있어. 필요에 따라 모든 것이 있습니다.
$html = "http://www.ebay.co.uk/itm/190706137456?_trkparms=clkid%3D1088812801530482649&_qi=RTM944765";
$dom = new domDocument();
$dom->loadHTMLFile($html);
$dom->preserveWhiteSpace = false;
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
$filename = basename($image->getAttribute('src'));
$width = $image->getAttribute('width');
$height = $image->getAttribute('height');
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if ($ext == 'jpg' && ($width > 20 && $height > 10)) {
echo $filename . "($width x $height)" . '<br>';
}
}