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

如果我在下面运行此代码,它将返回一个只有一个元素的数组

$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 回答