【问题标题】:database select result upper case first letter of name数据库选择结果大写名称的第一个字母
【发布时间】:2015-06-25 09:16:54
【问题描述】:
if ($stmt - > execute()) {
    if ($stmt - > rowCount() > 0) {
        while ($selected_row = $stmt - > fetch(PDO::FETCH_ASSOC)) {
            echo ucwords($selected_row[$name]).
            "   ";
            $basicinfo1[] = $selected_row[$name];
        }
        $input = array_map("unserialize", array_unique(array_map("serialize", $basicinfo1)));
        echo json_encode($input, JSON_UNESCAPED_UNICODE);
        //echo $_GET['callback'] . '('.json_encode($basicinfo1).')';
    }
}

回显结果

JEHOMAR MARIA JAMAICA MARIO MARIEGRACE MARIO MARY ANNE MARILYN MARIA CHRISTINA MARIE GRACE MARBIE MARIA JASMIN MARY JANE MARCIANA LEO MARCCO MARGOT MARIA CRISTINA MARIA TERESA MARK ANTHONY MARK ANA MARIE RALPH MARLON MARIANNE JOEMAR MARITES SHIELA MARIE MARIBETH MARIVIC MARIAN MARCELINO ALMEN MARTIN MARK SUNNY MARLOU MARY JANE MARIA RIA ELMAR MARILYN MARGARITA MARIELA MARJORIE ANNE MARTIN MARIONITO JHOMAR MARIA LUISA MARIE KRISTINE MARY ANN MARCELO MARGIE MARIO CHARL-MARI GEMARIE MARIO JOEMAR MARIA LENIE MARILOU MARILOU MARJORIE MARIA PAZ JOSE MARIE MARYCRIS MARVIN MARY FRANCESS JOURIEMAR MARIE Rose MARY JANE ROSEMARIE MARILYN MARIE-MONIQUE MARIANETH MARIBEL MARICEL MARILYN MARK ANTHONY MARVIN LOEWEN MARK MARVEL MARIANO MARTE JOVEMAR MARIBETH MARIVER MARTE MARILOU EDDIMAR MARIO MARISSA MARITES MARLYN MARWIN MARIETTA MARY ANN MARIVI MARYJANE ANNA MARIA EMMAR MARIO MARITES MARK VINCENT MARILYN MARIBEL MARICEL MARISSA MARK ANTHONY MARK KNEP MARK REGGIE

在这段代码中,我尝试使用ucwords 更改名称的第一个字母,然后使用选定的行($selected_row[$name]),但回显显示名称没有变化。还是大写字母。有没有其他方法可以改变首字母大写的单词

【问题讨论】:

    标签: php uppercase


    【解决方案1】:

    试试 -

    ucwords(strtolower($selected_row[$name]))
    

    ucwords 将只转换第一个字母,但不会处理其余部分。所以首先strtolower 将其转换为小写,然后ucwords 将第一个字母转换为大写。

    【讨论】:

    • 我需要时间来打勾
    • 您可以尽可能多地服用。 :)
    【解决方案2】:

    如果您不使用 ascii(并且应该),使用 mb_ 函数来处理 UTF-8 字符集很有用。当/如果您的数据库中有外国名称时,就会出现这种情况。

    试试

    mb_convert_case($selected_row[$name], MB_CASE_TITLE, "UTF-8");
    

    MB_CASE_TITLE 将所有单词小写,但首字母大写。与 ucwords(strtolower(...)) 相比,这是一次调用,它处理 UTF-8 字符。


    一个例子来理解这两种方法的区别:

    $str = "Hello guys! I'm émile ÉÀ!";
    echo ucwords(strtolower($str));
    echo '<br />';
    echo mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
    

    输出

    大家好!我是 émile ÉÀ!

    大家好!我是ÉmileÉà!

    在第一种情况下,strtolower 不会将重读大写字母转换为小写(最后一个字母仍然是 À 而不是 à)。并且uwords 不会将 émile 的 é 大写。在mb_convert_case 的第二种情况下,这是正确处理的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 2013-04-21
      • 1970-01-01
      相关资源
      最近更新 更多