php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #35410 Strange behavior of function "wddx_deserialize"
Submitted: 2005-11-26 17:11 UTC Modified: 2005-11-30 19:13 UTC
From: thomas dot werner at mac dot com Assigned: iliaa (profile)
Status: Closed Package: WDDX related
PHP Version: 5CVS, 4CVS (2005-11-30) (cvs) OS: *
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
MUST BE VALID
Solve the problem:
44 - 27 = ?
Subscribe to this entry?

 
 [2005-11-26 17:11 UTC] thomas dot werner at mac dot com
Description:
------------
I have a wddx file:
*******************

<wddxpacket version="1.0">
  <header>
    <comment>Content Configuration File</comment>
  </header>
  <data>
    <struct>
      <var name="content_queries">
        <struct>
          <var name="content_113300831086270200">
            <struct>
              <var name="113301888545229100">
                <struct>
                  <var name="max">
                    <number>10</number>
                  </var>
                  <var name="cache">
                    <number>4</number>
                  </var>
                  <var name="order">
                    <struct>
                      <var 
name="content_113300831086270200">
                        <struct>
                          <var name="CMS_BUILD">
                            <string>desc</string>
                          </var>
                        </struct>
                      </var>
                    </struct>
                  </var>
                </struct>
              </var>
            </struct>
          </var>
        </struct>
      </var>
    </struct>
  </data>
</wddxpacket>

and load it with the function "wddx_deserialize" in $config. 
var_dump outputs different arrays in php-4.4.0 and 
php-4.4.1.

["113301888545229100"] (4.4.0) and [2147483647] (4.4.1) are 
not the same (string vs. int).

i used exact the same configuration for compiling and 
checked it with debian sarge on linux and macosx too.

cheers tom

Reproduce code:
---------------
[...]

if ( !( $filepointer = @fopen( $filename, 'r' ) ) ) {
	return false;
}
while ( !feof( $filepointer) ) {
	$data .= fgets( $filepointer, 4096 );
}
fclose( $filepointer );

if ( $data ) {	

	$config = wddx_deserialize( $data );
	
[...]

Expected result:
----------------
[...]
  ["content_queries"]=>
  array(1) {
    ["content_113300831086270200"]=>
    array(1) {
      ["113301888545229100"]=>
      array(3) {
        ["max"]=>
        int(10)
        ["cache"]=>
        int(4)
        ["order"]=>
        array(1) {
          ["content_113300831086270200"]=>
          array(1) {
            ["CMS_BUILD"]=>
            string(4) "desc"
          }
        }
      }
    }
  }
[...]

Actual result:
--------------
[...]
  ["content_queries"]=>
  array(1) {
    ["content_113300831086270200"]=>
    array(1) {
      [2147483647]=> 
[...]

2147483647 is not right...

Patches

Add a Patch

Pull Requests

Add a Pull Request