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

Foi útil?

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ê.

http://ca3.php.net/manual/en/function.ucfirst.php

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top