【问题标题】:Get only images links that missing the alt attribute with preg_match_all in PHP仅在 PHP 中使用 preg_match_all 获取缺少 alt 属性的图像链接
【发布时间】:2015-01-23 23:45:06
【问题描述】:

您好,抱歉我的英语不好。

我正在尝试从第三方网站获取所有图片链接,但我只想获取没有 alt 属性的链接。我想输出链接。

现在我有了这个代码:

<?php

$content = file_get_contents('domain.com');

preg_match_all('/<img(.*?)>/is',$content,$page_images);
$total_images = count($page_images[1]);

preg_match_all('/<img(.*?)alt="(.*?)"(.*?)>/is',$content,$alt_images);
$total_alt = count($alt_images[2]);

$missing_alt = $total_images - $total_alt; 


echo $missing_alt.' alt attributes are empty or missing';

?>

此代码正在运行,并给出了缺少 alt 属性的图像总数。

现在我还想输出缺少 alt="" 属性的链接。

【问题讨论】:

  • 所以没有办法做到这一点?
  • 有可能,但你应该使用正确的工具,正则表达式不是其中之一。看看@Alex 的回答。

标签: php file-get-contents preg-match-all


【解决方案1】:

不应使用正则表达式解析 HTML。

使用DOMDocumentSimpleHTMLParser 会更好、更安全、更轻松。

【讨论】:

    猜你喜欢
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 2013-09-04
    相关资源
    最近更新 更多