我正在 try catch 从 Wordpress 站点生成的 HTML 中的所有 CSS 文件。
到目前为止,我有以下内容
preg_match_all('/"([^"]+?\.css)"/', $op, $css);
这让我获得了所有没有查询字符串的 *.css URL,但我相信您知道,WP 有一种有趣的方式向它们附加查询字符串...所以 20 多个 CSS 文件的其余部分不是捕获。
我怎样才能修改它以捕获它们?
Dom 解析不是一个选项,因为 WP 很少生成有效的 html...
最佳答案
如果 DOM 解析不是一个选项,请考虑以下代码。你很接近:
// just a random css link
$str = "href='/wp-content/themes/optimizePressTheme/lib/js/fancybox/jquery.fancybox.min.css?ver=2.3.4.3'";
// match href literally, then use a named group called css
$regex = "/href=['\"](?P<css>([^'\"]+?\.css)[^'\"]*)/";
preg_match_all($regex, $str, $matches);
print_r($matches["css"]);
// e.g. /wp-content/themes/optimizePressTheme/lib/js/fancybox/jquery.fancybox.min.css?ver=2.3.4.3
尽管如此,请考虑使用 DOM 解析器,它大部分都可以工作 with badly formatted HTML
关于php - 匹配 Wordpress HTML 中的所有 CSS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34049132/