#40235 [Opn->Fbk]: serialize breaks with floats if locale is set to de_DE
| From: | tony2001@php.net | Date: | Thu, 25 Jan 2007 12:35:47 +0000 |
| Subject: | #40235 [Opn->Fbk]: serialize breaks with floats if locale is set to de_DE | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-108038@lists.php.net to get a copy of this message | ||
ID: 40235
Updated by: tony2001@php.net
Reported By: tacker@php.net
-Status: Open
+Status: Feedback
Bug Type: Variables related
Operating System: Gentoo Linux
PHP Version: 5.2.1RC3
New Comment:
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.2-win32-latest.zip
Previous Comments:
------------------------------------------------------------------------
[2007-01-25 12:34:31] tacker@php.net
Description:
------------
If locale is set to de_DE serialized arrays and objects with floats
somewhere cannot be unserialized.
Reproduce code:
---------------
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
echo 'Setting locale to ' . setlocale(LC_ALL, 'de_DE') . "\n"; //
Remove this to make it work
$array = array('myval' => 1.2345);
echo 'Serializing ';
var_export($array);
echo "\n";
$serialized = serialize($array);
echo 'Got: ' . $serialized . "\n";
echo "Unserializing.\n";
$unserialized = unserialize($serialized);
echo 'Got: ' . var_export($unserialized, true) . "\n";
echo 'This should be true: ' . var_export(($unserialized ===
$array), true) . "\n";
?>
Expected result:
----------------
$ php locale_serialize.php
Serializing array (
'myval' => 1.2345,
)
Got:
a:1:{s:5:"myval";d:1.2344999999999999307220832633902318775653839111328125;}
Unserializing.
Got: array (
'myval' => 1.2345,
)
This should be true: true
Actual result:
--------------
$ php locale_serialize.php
Setting locale to de_DE
Serializing array (
'myval' => 1,2345,
)
Got:
a:1:{s:5:"myval";d:1,2344999999999999307220832633902318775653839111328125;}
Unserializing.
Notice: unserialize(): Error at offset 17 of 75 bytes in
/var/www/alan-live/htdoc/test/locale_serialize.php on line 16
Got: false
This should be true: false
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=40235&edit=1