php - 如何在宽度 >= 300 的情况下对 IMG 进行正则表达式?

标签 php regex html-parsing

我怎样才能得到所有的 <img>带有 width >= 300

我的标记/代码:

$images = <<<END
<img src="/data/img/201108031_023" width="300" height="400" />
<img src="/data/img/201108031_026" width="250" height="300" />
<img src="/data/img/201108031_028" width="400" height="300" />
<img src="/data/img/201108031_032" width="500" height="400" />
...
END;

我的尝试:

preg_match_all("/<img(.*?) \/>/",$images,$matches);
print_r($matches);

最佳答案

为此使用正则表达式不是一个好主意。

这适用于您的特定示例,但它有许多问题,因为正则表达式无法正确解析 HTML:

"/<img[^>]*width=\"([3-9][0-9]{2}|[1-9][0-9]{3,})\"[^>]*>/"

在线查看它:ideone

我建议您改用 HTML 解析器。

相关

关于php - 如何在宽度 >= 300 的情况下对 IMG 进行正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8003101/

相关文章:

php - scanimage 和 shell_exec ...可能吗?

python - 如何获取页面内的直接下载链接?

php - 从外部页面抓取 DIV 内的特定元素

html - 在iOS的hpple库中对Xpath查询使用通配符

正则表达式只有 14 个数字

javascript - 修改iframe属性

PHP:将相当于用户在表单选择中的选择的数据库插入到变量中?

php - 如何在 php 中进行 geoip 查找?

php - 选择类别的所有项目及其子类别中的所有项目

python - 从列表列表中提取数字