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
これは何かの理由では大丈夫だったのですが、このようになってしまったときには大変でした。$ value = mysql_real_escape_string($ value); – user1209203