PHP String Transforme o primeiro caractere em maiúsculas/minúsculas
Pergunta
Eu tenho dois tipos de cordas, 'hello', 'helloThere'.
O que eu quero é alterá -los para que eles se leguem: 'Hello', 'Hello There'
dependendo do caso.
Qual seria uma boa maneira de fazer isso?
Obrigado
Solução
você pode usar ucwords
como todos disseram ... para adicionar o espaço em helloThere
você pode fazer $with_space = preg_replace('/[A-Z]/'," $0",$string);
então ucwords($with_space);
Outras dicas
Para converter o camelcase em palavras diferentes:
preg_replace('/([^A-Z])([A-Z])/', "$1 $2", $string)
Para maiúsculas todas as palavras primeiras letras:
ucwords()
Então juntos:
ucwords(preg_replace('/([^A-Z])([A-Z])/', "$1 $2", $string))
Use o ucwords
função:
Retorna uma string com o primeiro caractere de cada palavra em str em maiúsculas, se esse personagem estiver alfabético.
A definição de uma palavra é qualquer sequência de caracteres que seja imediatamente após um espaço em branco (estes são: espaço, alimentação de formulário, nova linha, retorno do carro, guia horizontal e guia vertical).
Isso não dividirá palavras que são batidas juntas - você precisará adicionar espaços à string, conforme necessário para que essa função funcione.
Use o ucwords
função:
echo ucwords('hello world');
O PHP possui muitas funções de manipulação de string. ucfirst()
faria isso por você.
Use ucwords
<?php
$foo = 'hello world';
$foo = ucwords($foo); // Hello world
$bar = 'BONJOUR TOUT LE MONDE!';
$bar = ucwords($bar); // HELLO WORLD
$bar = ucwords(strtolower($bar)); // Hello World
?>
Para fazer com que ele funcione em outros idiomas, o UTF-8 pode ser uma boa ideia implementar. Estou usando esta prova de água para quaisquer idiomas nas minhas instalações do WordPress.
$str = mb_ucfirst($str, 'UTF-8', true);
Isso torna a primeira letra em maiúsculas e todas as outras minúsculas. Se o terceiro arg for definido como false (padrão), o restante da string não será manipulado. No entanto, alguém aqui pode sugerir um argumento para reutilizar a própria função e MB em maiúsculas cada palavra após a primeira, para ser uma resposta mais exata para a pergunta.
// Extends PHP
if (!function_exists('mb_ucfirst')) {
function mb_ucfirst($str, $encoding = "UTF-8", $lower_str_end = false) {
$first_letter = mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding);
$str_end = "";
if ($lower_str_end) {
$str_end = mb_strtolower(mb_substr($str, 1, mb_strlen($str, $encoding), $encoding), $encoding);
} else {
$str_end = mb_substr($str, 1, mb_strlen($str, $encoding), $encoding);
}
$str = $first_letter . $str_end;
return $str;
}
}
/ Lundman