#37593 [Bgs]: extract() does not work for accented keys

From: Date: Wed, 31 May 2006 18:48:56 +0000
Subject: #37593 [Bgs]: extract() does not work for accented keys
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-97872@lists.php.net to get a copy of this message
 ID:               37593
 User updated by:  gallard at mmic dot net
 Reported By:      gallard at mmic dot net
 Status:           Bogus
 Bug Type:         Arrays related
 Operating System: Linux Mandriva 2006
 PHP Version:      5.0.4
 New Comment:

Toni wrote: 
"Which means in the locale used by Apache symbols 
e(accented) and e are equal." 
The following variation shows that the problem is not 
related to an equality to 'e'. 
$x['aq']=1; 
$x['aw']=2; 
$x['aé']=3; 
$x['az']=4; 
have the same problem. Third item is not extracted. 
 
I also checked on another server 
(Apache1.3.33+php4.3.10-16). The problem does not happen. 
 
I do not have access to a more recent version of PHP. Can 
somebody else try it?


Previous Comments:
------------------------------------------------------------------------

[2006-05-30 16:19:10] tony2001@php.net

Which means in the locale used by Apache symbols e(accented) and e are
equal.
Which is not PHP problem.

------------------------------------------------------------------------

[2006-05-30 16:14:55] gallard at mmic dot net

Supplementary note:  
The problem only happen in apache environment.  
There is no problem if executed in CLI mode.

------------------------------------------------------------------------

[2006-05-30 09:58:57] tony2001@php.net

What if you try with this array?
$x['aq']=1;
$x['aw']=2;
$x['aé']=3;
$x['az']=4;

And with a newer PHP version?

------------------------------------------------------------------------

[2006-05-25 21:48:46] gallard at mmic dot net

Description:
------------
Problem seen in PHP5.0.4 
extract() will not extract an array element if the key name 
contain an accented character. In the following example, 
the third element is not extracted. 

Reproduce code:
---------------
$x['aa']=1;
$x['ae']=2;
$x['aé']=3;
$x['af']=4;
extract($x);
print_r( get_defined_vars());

Expected result:
----------------
Array 
( 
    [x] => Array 
        ( 
            [aa] => 1 
            [ae] => 2 
            [aé] => 3 
            [af] => 4 
        ) 
    [aa] => 1 
    [ae] => 2 
    [aé] => 3 
    [af] => 4 
) 
 

Actual result:
--------------
Array 
( 
    [x] => Array 
        ( 
            [aa] => 1 
            [ae] => 2 
            [aé] => 3 
            [af] => 4 
        ) 
 
    [aa] => 1 
    [ae] => 2 
    [af] => 4 
) 
 


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=37593&edit=1


Thread (6 messages)

« previous php.bugs (#97872) next »