首字母大写从MySQL与PHP/jQuery拉的每个单词的首字母
我已经将名称全部小写存储到MySQL数据库,但我的用户希望在网站上看到他们作为第一个字母大写。然而,我试图找出一种方式,不管是服务器端(PHP)还是客户端(jQuery),都可以在不更改数据库中的任何内容的情况下执行此操作。这可能吗?首字母大写从MySQL与PHP/jQuery拉的每个单词的首字母
CODE:
$result = mysql_query("SELECT user from `users` order by user asc") or die(mysql_error());
echo '<select name="user" class="user">';
while ($row = mysql_fetch_array($result)) {
echo "<option value='".$row['user']."'>".$row['user']."</option>";
}
echo '</select>';
还有
ucwords($row['user']);
如果你想利用所有的话。
PHP有ucfirst
功能。
echo "<option value='".$row['user']."'>".ucfirst($row['user'])."</option>";
仅通过改变option
里面的价值,而不是value
属性,则可以确保相同的值将被发送回服务器。请注意,您也可以使用strtolower
来确保字符串全部小写。
这是一个很棒的主意,这是我之后 – benhowdle89 2011-01-07 13:37:01
在PHP中,您可以使用函数UCfirst(str);为了达成这个。
你也可以在你的SQL查询中做到这一点 - 但不知道这是做这件事的最好方法。
SELECT CONCAT(UPPER(SUBSTRING(firstName, 1, 1)),
LOWER(SUBSTRING(firstName FROM 2))) AS properFirstName
或者你也可以通过CSS像这样做:
div.caps { text-transform: capitalize; }
结果是:
这是一些文本。
您还可以使用CSS做到这一点:
#example {
text-transform: capitalize;
}
像这样
$result = mysql_query("SELECT user from `users` order by user asc") or die(mysql_error());
echo '<select name="user" class="user">';
while ($row = mysql_fetch_array($result)) {
$user = explode(" ", $row['user']);
echo "<option value='".$row['user']."'>".ucfirst($user[0]).' '.ucfirst($user[1])."</option>";
}
echo '</select>';
你可以与MySQL做得一样好:
SELECT CONCAT(UPPER(SUBSTR(user, 1, 1)), SUBSTR(user, 2)) FROM `users` ORDER BY user ASC
注意之间的映射大小写字母在每个国家都不一样;最显着的例子是土耳其,其中我是土耳其,此外,名称往往会有更复杂的大写规则(例如“MacDonald”,“deVries”,“von Hohenzollern”都是正确的姓氏)
我会在数据库上运行一次转换,然后离开表示层单独。
“我将所有小写字母都存储到mysql数据库中”。你为什么这样做?像“罗纳德麦克唐纳”这样的名字永远不会被正确地重新格式化。作为一个建议,通常是一个好主意,按照提供的方式存储信息(在转义之后等),然后在输出中处理它。 – 2011-01-07 13:37:02