0

我正在尝试在一个大的 css 文件中获取所有 url。

我尝试使用这个正则表达式:

preg_match_all("/url\('(\\'|[^'])*'\)/m", $css, $matches);

$css是一个 10kB 的变量,使用 . 从 css 文件中读取file_get_contents
$matches是一个空数组。

但是,这会导致(net::ERR_EMPTY_RESPONSE)chrome 出现错误:服务器不发送任何数据。如果我在这一行之前返回函数,一切正常。如果我在这一行下方返回函数,我会得到一个空响应。

它甚至不会发送我在该行之前输出的数据,并且它会在几秒钟内响应(响应为空) - 远不及 30 秒超时。

当我第一次使用这个正则表达式时它工作得很好,并将输出传递给上面的代码。 preg_match_all("/@font-face{[^}]+}/m", $css, $matches);
那一行是在我意识到我需要其他 URL 之前——不仅仅是字体。

有谁知道出了什么问题?

更新:可能是这个错误吗?
https://bugs.php.net/bug.php?id=62049
链接到:
http
://codepad.org/FmlJi8N9 和快速谷歌搜索稍后:
警告:preg_match():内部pcre_fullinfo()

我怎样才能解决这个问题?

4

1 回答 1

1

如果我理解正确,你想这样做:

preg_match_all("/url\([^)]*\)/m", $css, $matches);
于 2013-07-20T21:23:41.933 回答