$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');
... width="xxx" と height="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>';
}
}