0

大きなcssファイルですべてのURLを取得しようとしています。

私はこの正規表現を使ってみました:

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

$cssを使用して css ファイルから読み取られる 10kB の変数です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
および後で簡単な Google 検索:
警告: preg_match(): 内部 pcre_fullinfo()

どうすればこれを修正できますか?

4

1 に答える 1