19 de março de 2013

PHP - Transformar a primeira letra de todas as palavras em maiúscula

<?php
    $frase = 'olá mundo!';
    $frase = ucwords($frase);
    // Olá Mundo!

    $frase = 'OLÁ MUNDO!';

    $frase = ucwords($frase);
    // OLÁ MUNDO!

    $frase = ucwords(strtolower($bar));
    // OlÁ mundo!

    $frase = ucwords(mb_strtolower(utf8_encode($bar),'utf-8'));
    // Olá mundo!
    
    /* resolvendo com regex */
    $frase = preg_replace('/(^[^ ]|[ ][^ ])/e', "strtoupper('\\1')",mb_strtolower(utf8_encode($frase),'utf-8'));
    // Olá mundo!

    /*
    ucwords = transforma a primeira letra em maiúscula
    mb_strtolower = o mesmo que strtolower, mas aceita parâmetros
    utf8_encode = converte a string para o padrão utf-8
    */
?>

Fontes:
http://luisdalmolin.com.br/evitando-erros-de-acentuacao-com-strtolower-strtoupper-e-utf-8/
http://forums.devshed.com/php-development-5/lowercase-to-uppercase-using-preg-replace-221356.html
http://php.net/manual/en/function.mb-strtolower.php
http://www.php.net/manual/en/function.ucwords.php

Nenhum comentário:

Postar um comentário