При взятии данных из формы HTML и сохранении значения в сериализованном массиве, если есть новая строка, сериализация происходит неправильно с mysql_real_escape_string
.Новая строка в сериализованном массиве PHP
, например, это выводит строку неправильной длины также плюс новая линия была удалена
$value="new\r\nline";
mysql_real_escape_string($value);
$array=array();
$array[0]=$value;
$array=serialize($array);
echo $array;
печатает a:1:{i:0;s:9:"new line";}
Неверная длина? '' new \ r \ nline "' имеет 9 байтов, длина правильная. Только потому, что вы не видите, что новая линия не означает, что ее нет. Часто символы, такие как '' \ r "' или '" \ n "', явно не отображаются, например. в вашем браузере. Но вместо этого, в частности, в вашем браузере, преобразуется в пробелы и нормализуется до одного пространства, даже если имеется несколько пробельных символов. Вместо этого используйте источник просмотра. – hakre
Почему вы используете 'mysql_real_escape_string'? – Michas
ОК по какой-то причине это были juts, когда это было похоже на это: $ value = mysql_real_escape_string ($ value); – user1209203