Edit report at https://bugs.php.net/bug.php?id=18556&edit=1

 ID:                 18556
 Comment by:         richlv at nakts dot net
 Reported by:        spud at nothingness dot org
 Summary:            Setting locale to 'tr_TR' lowercases class names
 Status:             Closed
 Type:               Bug
 Package:            Scripting Engine problem
 Operating System:   Linux (RedHat 7.2)
 PHP Version:        5CVS, 4CVS (2005-10-04)
 Assigned To:        stas
 Block user comment: N
 Private report:     N

 New Comment:

which version is expected to have the fix ? looking at snapshots, is it trunk 
only (thus php 5.5 or whichever will be the next version) ?

interesting bit - this bug was fixed just 9 days short of it's 10th birthday ;)
(submitted 2002-07-25, fixed 2012-07-16)


Previous Comments:
------------------------------------------------------------------------
[2012-07-16 14:21:36] me at ollieread dot com

I don't know how helpful this will be, but I've recently had an issue with the 
Turkish locale where I work.

I tried lots of different methods, but the main issue seems to be with 
LC_CTYPE, 
as although class/method declarations include I, it's added to the stack as i.

I've wrote a couple of fixes that hopefully approach all cases, be warned, they 
are however a bit hacky.

http://codeosaur.us/2012/07/16/php-and-the-tr_tr-utf8-locale/

You can simple explicitly set LC_CTYPE to your native language(eg en_US.utf8), 
but if you absolutely must have tr_TR.utf8 there, then you can use the magic of 
__autoload(), __call() and class_alias to handle it for you.

Hope this helps.

------------------------------------------------------------------------
[2012-07-14 22:59:37] s...@php.net

This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.

 For Windows:

http://windows.php.net/snapshots/
 
Thank you for the report, and for helping us make PHP better.

Fixed in master.

------------------------------------------------------------------------
[2012-07-04 08:52:28] maar...@php.net

@ stormbyte, I just made 2 separate more explicit tests, one for 
tr_TR.iso8859-9 and one for tr_TR.UTF-8 and they do have the same outcome:

tr_TR.iso8859-9 - http://3v4l.org/o5YCk
tr_TR.UTF-8 - http://3v4l.org/F2gEb

3v4l.org uses a 'vanilla' PHP setup, be free to play with phpinfo() and the 
likes to see for yourself.

------------------------------------------------------------------------
[2012-07-03 17:05:03] stormbyte at gmail dot com

The problem:
<?php
setlocale(LC_ALL, 'tr_TR.UTF-8');
echo strtolower('THIS IS JUST A TEST');
?>
output:
thIs Is just a test

So if it is using the same function internally to do the tolower on class 
names, it will not find them.

A workarround would be use toupper instead of tolower in zend_internal 
namespace handling, despite the correct fix would be to use independent 
identifyers (??)

------------------------------------------------------------------------
[2012-07-03 16:53:08] stormbyte at gmail dot com

maar...@php.net:
They don't seem to be running vanilla PHP installations.
I've compiled php-5.4.4 from Gentoo and do not appear to be fixed to me, even 
in 5.4.4.

Can you try on a vanilla PHP?

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


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

    https://bugs.php.net/bug.php?id=18556


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

Reply via email to