php - 匹配 Wordpress HTML 中的所有 CSS 文件

标签 php css regex wordpress preg-match-all

我正在 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/

相关文章:

php - 如何知道本地主机上的 Apache 的 PHP 设置是否正确?

PHP/MySQL 使用 bootstrap 输出到表中 - 列困惑

php - sql选择当前图像代码

html - 使用 flexbox Bootstrap 元素到底部

html - 元素的宽度(位置 : absolute) inside element with (position:relative)

javascript - 在剑道分组单元格之前隐藏缩进

r - `data.table` 全局搜索 - 过滤 `any` 列中给定模式匹配的行

php - MySQL 日期分组

java - 检查字符串是否包含 CJK(中文)字符

javascript - 正则表达式获取 HTML 标签之间的单词