匹配 Wordpress HTML 中的所有 CSS 个文件

Match All CSS Files in Wordpress HTML

我正在尝试捕获从 Wordpress 站点生成的 HTML 中的所有 CSS 文件。

到目前为止我有以下内容

preg_match_all('/"([^"]+?\.css)"/', $op, $css);

这让我得到了没有查询字符串的所有 *.css URL,但我相信您知道,WP 有一种有趣的方式向它们附加查询字符串。 . 因此 CSS 文件的 20 多个其余部分未被捕获。

我怎样才能mod把它们都抓起来?

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