大きな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()
どうすればこれを修正できますか?