PHP:¿Cómo puedo hacer para que las primeras letras de un nombre sean puestas en mayúsculas?
De Foros del Web
La función ucwords() sirve para llevar el primer caracter de un cada palabra de un string a mayúscula (capitalizar). La puedes complementar con un strtolower() anidado para que siempre salga la primera letra en mayúscula y las demás de la palabras en minúscula,
así
Código PHP:
<?php $varStringConFormato = ucwords(strtolower($varStringSinFormato)); ?>
si usas el nombre luis miguel MONTES BurruCHAga
saldrá como resultado Luis Miguel Montes Burruchaga
(este ejemplo sale en la ayuda de php, pero lo expliqué un poquito más para que la entendieran mejor)
también se me ocurre otra forma utilizando ucfirst() (primer caracter de un string a mayúscula), combinado también con strtolower(), este último método te podría servir más en el caso de tratar con apellidos compuestos (de las Mercedes, del Carmen, de la Fuente , etc)... la idea consiste en separar mediante un explode() la cadena que contiene el nombre o lo que quiereas tratar...luego a cada elemento aplicas la función ucfirst(strtolower($elementoArray)), SI y SOLO SI no es un 'artículo' (la, las, de...)...
más o menos así
la hice a modo de función :)
Código PHP:
<? function Capitalizar($nombre) { // aca definimos un array de articulos (en minuscula) // aunque lo puedes definir afuera y declararlo global aca $articulos = array( '0' => 'a', '1' => 'de', '2' => 'del', '3' => 'la', '4' => 'los', '5' => 'las', ); // explotamos el nombre $palabras = explode(' ', $nombre); // creamos la variable que contendra el nombre // formateado $nuevoNombre = ''; // parseamos cada palabra foreach($palabras as $elemento) { // si la palabra es un articulo if(in_array(trim(strtolower($elemento)), $articulos)) { // concatenamos seguido de un espacio $nuevoNombre .= strtolower($elemento)." "; } else { // sino, es un nombre propio, por lo tanto aplicamos // las funciones y concatenamos seguido de un espacio $nuevoNombre .= ucfirst(strtolower($elemento))." "; } } return trim($nuevoNombre); } ?>
--E-miliox 20 Dic 2002
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
