Mysqli_real_escape_string мешающий preg_split работать?
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);
Кто-нибудь еще испытывал это явление? Почему это происходит?
1 ответ
Решение
http://php.net/mysqli-real-escape-string
Кодируются следующие символы: NUL (ASCII 0), \n, \r, \, ', "и Control-Z.
Это означает, что переводы строки становятся \\n
(НЧ), \\r
(CR) и \\r\\n
(CRLF). Поэтому они больше не соответствуют регулярному выражению.
В будущем RTM;)