#8328 [Opn->WFx]: ucwords and ucfirst misbehaving with quotes

From: Date: Sat, 18 Jan 2003 16:32:18 +0000
Subject: #8328 [Opn->WFx]: ucwords and ucfirst misbehaving with quotes
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-30476@lists.php.net to get a copy of this message
ID: 8328 Updated by: moriyoshi@php.net Reported By: vitaliyf@gameaholic.com -Status: Open +Status: Wont fix Bug Type: Feature/Change Request Operating System: Linux PHP Version: 4.0.3pl1 New Comment: FYI: you can use mb_convert_case() function that was introduced in 4.3.0 instead of ucwords(). It works exactly as you want. Previous Comments: ------------------------------------------------------------------------ [2001-01-10 01:37:44] david@php.net i disagree with the proposed change to ucfirst (which incidentally returns >>"test2" again<<) since, unlike ucwords, it isn't necessarily only used for natural language. ------------------------------------------------------------------------ [2000-12-20 01:03:00] vitaliyf@gameaholic.com Another unrelated ucwords/ucfirst bug(?): <?php $string = 'this is a "test" with word "test" in quotes'; print ucwords($string); $string = '"test2" again'; print ucfirst($string); ?> produces: This Is A "test" With Word "test" In Quotes "test2" Again I understand that by algorithm, first character of each word *IS* upper-cased (because first character is "). However, for us humans, " is not considered a part of a word, therefore "t" in above example should be treated as first letter, and test and test2 should be Test and Test2. I think that any non-alphanumeric character that is in the beginning of a word (meaning follows a whitespace) should not be considered as "first". So then: "test1" - 'test2' would be "Test1" - 'Test2' "test3" -'test4' would be "Test3" -'Test4' "test5-test6" would be "Test5-test6" Comments welcome.. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=8328&edit=1

« previous php.bugs (#30476) next »