0

一重引用符を使用する場合

preg_match("/Location:(.*?)\n/", 'Location: www.\n', $matches);
    var_dump($matches);

それは印刷します:

array (size=0)
  empty

二重引用符を使用する場合

preg_match("/Location:(.*?)\n/", "Location: www.\n", $matches);
var_dump($matches);

印刷します

array (size=2)
  0 => string 'Location: www.
' (length=15)
  1 => string ' www.' (length=5)

どうして??

4

3 に答える 3

0

これは実際には何の関係もありませんpreg_match。一重引用符を使用すると、文字列は改行で終わりません。バックスラッシュの後に n が続きます。

于 2012-11-28T04:59:07.663 に答える
0

PHPマニュアルから:

一重引用符

文字列を指定する最も簡単な方法は、一重引用符 (文字') で囲むことです。

リテラルの一重引用符を指定するには、バックスラッシュ ( ) でエスケープします\。リテラルのバックスラッシュを指定するには、二重にします ( \\)。バックスラッシュの他のすべてのインスタンスは、リテラルのバックスラッシュとして扱われます。これは、またはなどの他のエスケープ シーケンスが\r\n、特別な意味を持つのではなく、指定されたとおりに出力されることを意味します。

于 2012-11-28T05:00:11.890 に答える
-1

これはあなたを助けるかもしれません:

preg_match()

于 2012-11-28T05:00:26.730 に答える