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

 ID:                 61408
 User updated by:    inge at upandforward dot com
 Reported by:        inge at upandforward dot com
 Summary:            Character set failure
 Status:             Not a bug
 Type:               Bug
 Package:            Strings related
 Operating System:   Linux Ubuntu
 PHP Version:        5.3.5-1ubuntu7.7
 Block user comment: N
 Private report:     N

 New Comment:

Already installed! :)
Anyway, I thought that utf-8 was utf-8, regardless of locale. Oh well. I'll do 
with my work-around.


Previous Comments:
------------------------------------------------------------------------
[2012-03-19 00:23:27] ahar...@php.net

That's really a question for an Ubuntu support channel, but I think installing 
the 
language-support-nb package would do it.

------------------------------------------------------------------------
[2012-03-16 10:07:04] inge at upandforward dot com

Comment found on stackoverflow.com:

"If you ask me, setlocale() sucks ass. I am a friend of managing this manually 
or using a library like Zend_Localeso you don't have to depend on locales being 
installed on the server (and sometimes still not working)".

The client should NOT be expected to use the same locale as the server, but if 
I could install the Norwegian locale, I think it might still be OK, So how do I 
install the above mentioned library, or some equivalent?

------------------------------------------------------------------------
[2012-03-16 01:35:25] ahar...@php.net

There are encodings where 0x2f (/) and 0x5c (\) are valid bytes within 
multi-byte 
characters, so basename() has to be locale-aware to deal with that.

Fundamentally, I don't really see why you would expect basename() to be able to 
deal sensibly with a configured locale that you don't have installed. Your test 
script behaves fine provided nb_NO.utf8 is available.

Not a bug -> closing.

------------------------------------------------------------------------
[2012-03-15 23:01:59] inge at upandforward dot com

Here's a replacement, but without the $suffix parameter:

function IV_basename($name)
{       $name = strrchr($name,DIRECTORY_SEPARATOR);
        if ($name) return substr($name,1);
        return false;
}

------------------------------------------------------------------------
[2012-03-15 22:55:47] inge at upandforward dot com

There is no return value (it may be false or an empty string), and locale -a 
does not include "nb_NO". However, the site is used in Norway for Norwegian 
users, so it must be able to handle Norwegian characters. The basename function 
should not make such distinctions, so I have written my own - which works 
independently of locale or character set.
The php version has been corrected above because the bug report did not give 
that choice. My suggested replacement could not be uploaded because the site 
did not accept a text file, even if it stated that it was the only filetype 
accepted. I also had great trouble getting the right CAPTCHA (Oh, yes, I can 
add numbers! :) )

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


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=61408


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

Reply via email to