Consider,
preg_match_all("/<img.*>/", $htmlfile, $match);
Since PCRE_DOTALL is not used, this pattern is expected to NOT make matches across multiple lines. However, in somecases it can, depending on the PCRE default settings and your data ($htmlfile). The problem is that some are set to recognize NEWLINES differently.
To fix this use,
preg_match_all("/(*ANY)<img.*>/", $htmlfile, $match);
Now, any character that could possibly be seen as a newline will be interpreted as a newline by the PCRE.
NOTE: This pattern has been available since PCRE version 7.3
ドット
パターン中のドット(ピリオド、終止符)は、文字クラス外では、 対象文字列の任意の 1 文字にマッチします。非出力文字も含まれます。 ただし、(デフォルトでは)改行文字とはマッチしません。 PCRE_DOTALL オプションを設定すると、ドットは改行にもマッチするようになります。 ドットの処理は、ハット記号およびドル記号とは完全に独立しています。 共通な点は共に改行文字と関連することだけです。ドットは、 文字クラス内では特別な意味を持ちません。
\C は単一バイトの文字にマッチします。 これは、UTF-8 モード で、ドットが複数バイトの文字にも マッチするような場合に有用です。
Anonymous
02-Feb-2011 12:46
