Foros del Web » Programando para Internet » PHP »

Mayuscula en primera letra...

Estas en el tema de Mayuscula en primera letra... en el foro de PHP en Foros del Web. Estimados amigos: Tengo un campo nombre completo en mi base de datos y quisiera desplegar el nombre en un input de tipo text pero con ...
  #1 (permalink)  
Antiguo 18/12/2002, 17:22
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 15 años, 1 mes
Puntos: 0
Mayuscula en primera letra...

Estimados amigos:
Tengo un campo nombre completo en mi base de datos y quisiera desplegar el nombre en un input de tipo text pero con la letra inicial de cada nombre y apellido en MAYUSCULA, Espero Haberme Explicado Bien.
Se puede hacer esto con PHP o es cosa de Javascript?
Ojala me puedan ayudar.
De antemano muchas gracias...
__________________
________________________________________

Ugho.
  #2 (permalink)  
Antiguo 18/12/2002, 17:28
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 15 años, 4 meses
Puntos: 4
Código PHP:
<? $str ucwords($str); ?>
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #3 (permalink)  
Antiguo 18/12/2002, 17:28
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
utiliza la funcion:

ucfirst($string)
__________________
Usuario registrado de Linux #288725
  #4 (permalink)  
Antiguo 18/12/2002, 17:31
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 15 años, 4 meses
Puntos: 4
posteamos al mismo tiempo, ucfirst() sólo pone en mayúscula la primera letra de todo el string, pero no de cada palabra.
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #5 (permalink)  
Antiguo 18/12/2002, 19:36
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 15 años, 1 mes
Puntos: 0
Gracias amigos:
en estos momentos no lo puedo probar, pero estoy seguro que me serviran.
__________________
________________________________________

Ugho.
  #6 (permalink)  
Antiguo 19/12/2002, 02:20
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
segun lo que lei, el nombre y el apellido van en diferentes campos por lo cual irtan en diferentes inputs por lo cual la funcion ucfirst le servira perfectamente :)
__________________
Usuario registrado de Linux #288725
  #7 (permalink)  
Antiguo 19/12/2002, 14:08
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
A no ser que tenga un nombre compuesto (ej, 'Jose Miguel').

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 19/12/2002, 14:40
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 15 años, 1 mes
Puntos: 7
la funcion para poner cada primera letra de la palabra en mayuscula es

ucwords()

y la puedes complementar con un strtolower() anidado para que siempre salga la primera letra en mayuscula y las demas de la palabra en misnucula

asi

<?php

$varStringConFormato = ucwords(strtolower($varStringSinFormato));

?>

si usas el nombre luis miguel MONTES BurruCHAga

saldra como resultado Luis Miguel Montes Burruchaga

(este ejemplo saleen la ayuda de php, pero la explique un pokito mas pa que la entendieran mejor)
__________________
=PoWeReD By MySeLf!=
  #9 (permalink)  
Antiguo 19/12/2002, 15:14
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 15 años, 1 mes
Puntos: 7
tambien se me ocurre otra forma utilizando ucfirst() combinado tambien con strtolower(), este ultimo metodo te podria servir mas en el caso de tratar con apellidos compuestos (de las Mercedes, del Carmen, de la Fuente , etc)... el idea consiste en separar mediante un explode() la cadena que contiene el nombre o lo que quiereas tratar...luego a cada elemento aplicas la funcion ucfirst(strtolower($elementoArray)), SI y SOLO SI no es un 'articulo' (la, las, de...)...

mas menos asi

la hice a modo de funcion :)

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);

__________________
=PoWeReD By MySeLf!=
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 01:12.