Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 10kB变量上的正则表达式->;来自服务器的空响应_Php_Apache2_Preg Match All - Fatal编程技术网

Php 10kB变量上的正则表达式->;来自服务器的空响应

Php 10kB变量上的正则表达式->;来自服务器的空响应,php,apache2,preg-match-all,Php,Apache2,Preg Match All,我试图抓住一个大css文件中的所有url 我尝试使用这个正则表达式: preg_match_all("/url\('(\\'|[^'])*'\)/m", $css, $matches); $css是一个10kB的变量,使用file\u get\u contents从css文件中读取 $matches是一个空数组 但是,这会导致chrome中出现(net::ERR\u EMPTY\u RESPONSE)错误:服务器不发送任何数据。如果我在这行之前返回函数,一切正常。如果我返回这行下面的函数,我会

我试图抓住一个大css文件中的所有url

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

preg_match_all("/url\('(\\'|[^'])*'\)/m", $css, $matches);
$css
是一个10kB的变量,使用
file\u get\u contents
从css文件中读取
$matches
是一个空数组

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

它甚至不发送我在该行之前输出的数据,它在几秒钟内做出响应(响应为空),远未接近30秒超时

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

有人知道出了什么问题吗

更新: 可能是这个错误吗?

链接到:

然后在谷歌上快速搜索:


如何解决此问题?

如果我理解正确,您希望执行以下操作:

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

尝试逐行匹配,url不太可能分散为两行。服务器日志会给您任何提示吗?在日志中找不到任何内容。另外,
explode(PHP_EOL,$subject)和一个
foreach
并没有解决它。这很有效!你看到我的蹩脚正则表达式失败的原因了吗?我的是一个简单的贪婪表达式,将根据需要读取匹配,所以没有超时的机会。对你的不太确定。。。您使用
\\'
的目的是什么?允许在路径中使用转义引号。我注意到我们使用了“,”和不带引号的组合,所以我修改了代码以匹配它。您的正则表达式很好地适合新代码。