#8328 [Opn->WFx]: ucwords and ucfirst misbehaving with quotes
| From: | moriyoshi@php.net | 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