使用 ucfirst 将字符串转换为标题大小写

9
我可能漏掉了一些非常明显的东西。

在将一堆字符串转换成数组之前,我注意到某些字符串由于首字母是否大写而不同。然后我决定使用ucfirst使第一个字符大写,但它似乎不能正常工作。我在网上搜索了一下,试图弄清楚为什么会发生这种情况,但没有成功。

$produtto = 'APPLE';
echo ucfirst($produtto);
//output: APPLE

如果我使用mb_convert_case代替
$produtto = 'APPLE';
echo mb_convert_case($produtto, MB_CASE_TITLE, "UTF-8");
//Output: Apple

2
你首先必须使用 strtolower() 转换为小写,然后再使用 ucfirst()。由于你的字符串已经是大写的了,所以现在的用法是行不通的。我曾经也遇到过这个问题,所以我通过艰苦的方式学会了它。哈哈,这种事情时有发生的;-) - Funk Forty Niner
1
记住这句话,就像很久很久以前有人告诉我一样:“计算机实际上很愚蠢,你必须告诉它们该做什么”。 - Funk Forty Niner
嘿嘿嘿 @fred 你说得对! - Fabio
哈哈哈,大约1985年 实际上。干杯;-) - Funk Forty Niner
4个回答

24

ucfirst() 只会查看第一个字符,因此您应该先将其转换为小写。

使用此代码:

$produtto = 'APPLE';
echo ucfirst(strtolower($produtto));
//output: Apple

1

1
在第一种情况下,我假设您需要使用 strtolower 将它们转换为小写,然后在字符串上使用 ucfirst

0

阅读手册!APPLE = 大写.. 因此 ucfirst 没有任何作用。

www.php.net/ucfirst

$foo = 'hello world!';
$foo = ucfirst($foo);             // Hello world!

$bar = 'HELLO WORLD!';
$bar = ucfirst($bar);             // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接