【问题标题】:using PHP Simple HTML DOM Parser to find <img> and height使用 PHP Simple HTML DOM Parser 查找 <img> 和高度
【发布时间】:2011-11-05 06:19:06
【问题描述】:

我正在使用 PHP Simple HTML DOM Parser 从外部页面返回多个图像。我需要通过仅返回宽度大于 50 像素且高度大于 60 像素的图像来最小化返回的图像数量。

如何使用 PHP Simple HTML DOM Parser 在运行时提取每个图像的高度和宽度,并且只返回满足上述要求的图像?

谢谢!

编辑添加的代码

到目前为止,这就是我所拥有的。

foreach($html->find('img') as $element) {
    $images = $element->src;
    echo $images;
}

【问题讨论】:

  • 到目前为止你得到了什么?您是否阅读过他们网站上的手册和示例代码?
  • 添加了上面的代码块。是的,我已经阅读了他们网站上的手册。
  • @Paul 嗨,你找到了什么解决方案?

标签: php


【解决方案1】:

如果没有在 HTML 中将高度指定为属性,则必须发出 HTTP 请求来下载每个图像。

幸运的是 PHP getimagesize 支持 URL:

$images = /* code to find images in the DOM */;
$res = array();
foreach ($images AS $img) {
    $res[$img] = getimagesize($img);
}

【讨论】:

  • 嗨,汤姆。谢谢回复。但是,以这种方式使用 getimagesize() 非常慢。如果由于缺少高度而丢失了一些图像也没关系
  • 这很慢,因为它向远程服务器发出 HTTP 请求以检索图像 - 无法避免。如果没有 1) 在 HTML 中有提示或 2) 获取图像,就没有其他方法可以找到尺寸。
  • height="x" 属性与 标签关联时不是一个很好的指标吗?我知道高度可能并不总是存在,这对于我正在尝试做的事情来说是可以的。
  • 满足您的最低要求的两个维度之一并不意味着另一个会,但是如果您运行一个小测试并检查发生这种情况的百分比,您可以确定该范围在您的用例中是否可以接受.否则,IMO 可以相对安全地假设,在 50-60 像素的尺寸上,如果一个大于另一个,则另一个也将是,反之亦然。
  • @paul,网站经常使用高分辨率图像,即使在拇指上,(你会注意到它们加载缓慢)。 attr height 绝不表示图像的真实高度。
猜你喜欢
  • 2013-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多