【问题标题】:How to find css link from html page [duplicate]如何从html页面中找到css链接[重复]
【发布时间】:2013-11-30 16:24:49
【问题描述】:

我有 php 正则表达式来查找标签并从 html 页面中提取 css 地址

'/<link.*?href\s*=\s*["\']([^"\']+)[^>]*>.*?\/>/i'

但是效果不好。你能帮我修改一下这段代码吗?

【问题讨论】:

  • 您不应该使用正则表达式来解析 HTML。请改用 DOM。

标签: php css regex tags


【解决方案1】:

也许

'/<link .*?(href=[\'|"](.*)?[\'|"]|\/?\>)/i'

然后您可以使用$2访问链接

【讨论】:

    【解决方案2】:

    正则表达式查找所有样式表的 href 可能是一项棘手的任务。您应该考虑使用一些 PHP HTML 解析器来获取此信息。

    您可以阅读 this article 以获取更多信息,然后尝试此代码。

    // Retrieve all links and print their HREFs
    foreach($html->find('link') as $e)
        echo $e->href . '<br>';
    
    // Retrieve all script tags and print their SRCs
    foreach($html->find('script') as $e)
        echo $e->src . '<br>';
    

    PS:请记住,您的脚本标签可能不包含 src,然后它将打印空字符串。

    【讨论】:

    • 谢谢。我想将此代码用于搜索
    • @user3001854 为脚本标签添加代码并阅读 PS
    • @user3001854 您可以阅读回答中提到的文章以获取详细信息。这很有帮助
    【解决方案3】:

    并不是说这比其他答案更好,但是以防万一您想查看它,我已经更改了您的正则表达式,使其可以按预期工作:

    '/<link.*?href\s*=\s*["\']([^"\']+?)[\'"]/i'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 2020-12-09
      • 2011-06-04
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多