ID:               14655
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Assigned
 Bug Type:         Strings related
 Operating System: Windows XP Pro (spanish)
 PHP Version:      4.1.0
 Assigned To:      hholzgra
 New Comment:

You can use mb_convert_case() instead of ucwords.
Could I close this bug?



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

[2002-08-27 07:50:25] [EMAIL PROTECTED]

I had this bug to. To get around it, I added some 'hair' to the code.

$string=ucwords($string);
//Bugfix from here on
for($i=0;$i<strlen($string);$i++)
        if((ctype_upper($string[$i]) &&( $string[$i-1]==" " || $i==0
))!=TRUE)
                $string[$i]=strtolower($string[$i]);

I'm a PHP newbie so I guess some of you can come up with a brighter
solution. This code lowercases _all_ letters that is not either the
first in the string or following a space. If your application does not
meet both this criterias, you might not want this code.

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

[2002-07-13 18:10:13] [EMAIL PROTECTED]

chancing status

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

[2002-06-17 07:02:15] [EMAIL PROTECTED]

setlocale() doesn't work well with multithreaded servers
as the current locale is set globaly for all threads

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

[2002-04-21 06:24:41] [EMAIL PROTECTED]

Confirming your bug (PHP 4.1.2 on W2k)
setlocale() on windows is the problem!
See bug #16718 
http://bugs.php.net/bug.php?id=16718

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

[2002-01-22 08:03:40] [EMAIL PROTECTED]

Some additional comments:

I cant reproduce this in Linux (meaning the returned data doesnt
change), but with PHP 4.1.1 in Window XP the problem exists, but only
when i change locale, my default locale is:

LC_COLLATE=C;LC_CTYPE=English_United
States.1252;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=C

and the output here is:
ÑÁéÍóúàèìòùäëÏöÜ

With linux:
Ñáéíóúàèìòùäëïöü


But if i change locale with:
setlocale(LC_ALL, "english");
(Locale: English_United States.1252)

The returned data differs at each function call

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/14655

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

Reply via email to