2
Example Text: This will be stored in the $_POST['x'] variable
This is sentence one.
This is sentence two.
This is sentence three.

以下のこのコードを実行すると、要素が1つだけの配列が返されます

$x= mysqli_real_escape_string($db, $_POST['x']);
$y= preg_split("/(\r\n|\n|\r)/", $x);

しかし、このコードを以下で実行すると、3 つの要素すべてに正しく分割されます。

$x = $_POST['x'];
$y= preg_split("/(\r\n|\n|\r)/", $x);

他の誰かがこの現象を経験しましたか? なぜそれが起こるのですか?

4

1 に答える 1

4

http://php.net/mysqli-real-escape-string
エンコードされる文字は、NUL(ASCII 0)、\ n、\ r、\、'、 "、およびControl-Zです。

これは、改行が\\n(LF)、\\r(CR)、および\\r\\n(CRLF)になることを意味します。したがって、それらは正規表現と一致しなくなります。

将来的には、RTM;)

于 2013-02-17T21:57:52.510 に答える