次の正規表現を使用して、150x150 ピクセル以外の画像を指す wget ログからすべての画像 URL を取得しようとしています。
preg_match_all('/http:\/\/'.$url.'\/wp-content\/uploads\/\S+(?:150x150)\.(?:jpg|jpeg|png|gif)/', $wgetlog, $image_urls);
この正規表現は機能します。150x150 の文字列を含むすべての URL が表示されます。次のように否定すると、次のように(?!150x150)
なります。
preg_match_all('/http:\/\/'.$url.'\/wp-content\/uploads\/\S+(?!150x150)\.(?:jpg|jpeg|png|gif)/', $wgetlog, $image_urls);
空の配列を出力します。(もちろん、ファイル内に一致する URL があります)
ヒントをありがとう!
URL 構造の例はhttp://url.com/wp-content/uploads/2009/09/name-of-the-file-150x150.png
とhttp://url.com/wp-content/uploads/2009/09/name-of-the-file-1324x130.png
です。