ID: 37945 Updated by: [EMAIL PROTECTED] Reported By: andreas dot schmidt at stasy dot de -Status: Assigned +Status: Bogus Bug Type: *Directory/Filesystem functions Operating System: Linux PHP Version: 5.1.4 Assigned To: moriyoshi New Comment:
Set the correct value to the LANG (or LC_CTYPE, if necessary) environment variables. The function expects your filesystem's locale to be the same as the one given by the environment variable. Up to this point you have to set up the libc's locale data too. If you were to use pathinfo() / dirname() / basename() on URI's, just don't do that. these are not designed to use for such a purpose. Previous Comments: ------------------------------------------------------------------------ [2006-06-29 15:25:28] [EMAIL PROTECTED] This, in deed, seems to be a regression introduced in PHP5. http://cvs.php.net/viewvc.cgi/php-src/ext/standard/string.c?r1=1.405&r2=1.406&pathrev=PHP_5_2 ------------------------------------------------------------------------ [2006-06-28 11:20:26] andreas dot schmidt at stasy dot de This bug has nothing to do with Unicode!!! The bug occurs when special characters like äöüé are used. These characters are part of the ISO-8859-1 character set! ------------------------------------------------------------------------ [2006-06-28 11:08:36] [EMAIL PROTECTED] Unicode support will appear only in PHP6, you have to wait until then. ------------------------------------------------------------------------ [2006-06-28 10:46:07] andreas dot schmidt at stasy dot de Description: ------------ When pathinfo() is passed an argument which contains special characters like german Umlaute äöü or french é, the return array contains wrong informations. In case of special characters in a directory name, the value for the key "basename" will be the name of the parent directory of this directory. The script was testet in UTF-8 and ISO-8859-1 with same results. This bug occured at least with a) a 'hand rolled' PHP 5.1.4 on Apache 1.3.36 b) PHP 5.1.2 on Apache 2.0.55 (Ubuntu 6.06 package) c) PHP 5.0.3 on Apache 2.0.53 (SuSE Linux 9.3) The problem does not occur when the script is run in a Win2k environment. Furthermore it seems to be a PHP 5 bug as it did not occur when run with PHP4. Reproduce code: --------------- <?php $dir = 'demo/testdir/äöüé'; $pinfo = pathinfo($dir); echo $pinfo['basename']; ?> Expected result: ---------------- äöüé Actual result: -------------- testdir ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=37945&edit=1