Foros del Web » Programando para Internet » PHP »

Problema con ucwords(Pone la primera letra de una cadena en mayusculas)

Estas en el tema de Problema con ucwords(Pone la primera letra de una cadena en mayusculas) en el foro de PHP en Foros del Web. Hola: Mi problema es que quiero hallar la primera letra del nombre y concatenarlo con el primer apellido del usuario. Es decir que si el ...
  #1 (permalink)  
Antiguo 23/05/2008, 17:08
 
Fecha de Ingreso: septiembre-2007
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 1
Exclamación Problema con ucwords(Pone la primera letra de una cadena en mayusculas)

Hola:
Mi problema es que quiero hallar la primera letra del nombre y concatenarlo con el primer apellido del usuario.
Es decir que si el usuario se llama juan pérez, me tiene que poner J.pérez.
Y esto si me lo hace bien. EL problema le tengo cuando el nombre empieza con tilde, por ejmplo con :
álba pérez, entonces me aparece igual, es decir álba pérez.....
Es como si la fucnión ucwords no funcionara cuando hay tildes....
Uso esta función de esta forma:
Cita:
echo $iniciales = ucwords($_POST['nombre']);
¿Alguien sabe porqué es?
Gracias
  #2 (permalink)  
Antiguo 23/05/2008, 17:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con ucwords(Pone la primera letra de una cadena en mayusculas)

es un detalle con la configuracion local de PHP, si deseas saber mas al respecto checa http://php.net/setlocale
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/06/2008, 16:46
 
Fecha de Ingreso: septiembre-2007
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 1
Exclamación

Hola. Hace tiempo me contestaron a este mensaje, pero lo he estado mirando y no entiendo muy bien como puedo solucionarlo. En los ejemplos que he visto aparece :
Cita:
/* Intentar diferentes nombres para la localizacion al idioma aleman en la version de PHP 4.3.0 */
$localizacion_aleman = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "El valor predeterminado del sistema para la localizacion en aleman es '$localizacion_aleman'";
....
Alguien me puede aclarar si en mi caso debería de poner esto :


Cita:
setlocale(LC_ALL, 'áéíóúÁÉÍÓÚ);
Gracias

Alguien puede decirme si es asi????

Hola, alguien puede decirme como puedo solucionarlo?Gracias

Última edición por GatorV; 01/07/2008 a las 14:41
  #4 (permalink)  
Antiguo 27/06/2008, 10:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con ucwords(Pone la primera letra de una cadena en mayusculas)

Hola Carol_84,

Revisa en el link que te dejo pateketrueke, necesitas usar el locale correcto de donde esta tu aplicación.

Saludos.
  #5 (permalink)  
Antiguo 27/06/2008, 12:08
Avatar de josefferhn  
Fecha de Ingreso: agosto-2007
Ubicación: Tegucigalpa, Fco Morazan
Mensajes: 27
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Problema con ucwords(Pone la primera letra de una cadena en mayusculas)

Bien entiendo que lo que quieres hacer es lo siguiente:
Usuario: Jose Ramos
Concatenado: jramos

has lo siguiente:

<?php
$NombreCompleto = $_POST['NombreUsuairo']; # Tu Cambias esto

list($Nombre,$Apellido) = split('[ ]', $NombreCompleto); # con esto ya tienes el nombre y el apellido si lo tuvieses en un solo campo, sino seria mas facil aun.

$PrimeraLetra = strtolower(substr($Nombre,0,1)); #paso a minusculas y obtengo solo la primera letra

$ApellidoConc = strtolower($Apellido); #paso a minusculas el apellido

$Concatenado = "$PrimeraLetra$ApellidoConc"; # ya concatenado

?>

Ojala te ayude. Saludos
  #6 (permalink)  
Antiguo 27/06/2008, 16:19
 
Fecha de Ingreso: septiembre-2007
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 1
Exclamación

hola josefferhn, muchas gracias por contestarme. La solución que me has dado, es muy parcedida la que ya tengo y no funciona. Mi código es este:

Cita:
$array = explode(" ",$_POST['nombre']);
$iniciales=strtoupper($array[0][0]).$array[1][0].$array[2][0].'.'.$_POST['apellido1'];
Y esto lo que te hace es poner el nombre y el apellido i concatenarlos, es decir: A.Sanchez.
El problema que tengo es que si por ejemplo el nombré lleva tilde, por ejemplo Ángel, se debería de poner: Á.Sanchez, pero no es así, sino que no me aparece nada.
las tildes en los apellidos los reconoce, pero en el nombre no.....
Gracias Gastov, a ti tb por contestarme, pero ya he mirado el post anterior que me respondió pateketrueke, y sigo sin saber arreglarlo, por eso he vuelto a postear....
Entre otras cosas he probado esto:
setlocale (LC_ALL, 'es_ES'); , pero tampoco funciona....
También he robado esto: setlocale(LC_ALL,'es_ES.utf-8'); pero tampoco.
Como habéis dichoq es una variable de php, he probado también a ponerlo en el fichero php.ini, por si esra por eso.... pero no....

Alguien puede ayudarme??
gracias!!!!!!

Hola de nuevo:
llevo varios dias con esto y non logro que fucnione.
haber he mirado en la configuracón de mi servidor, y he visto que urilza el español
Cita:
Accept-Language es
También para ver que locate tiene mi servidor he puesto:

Cita:
setlocale(LC_ALL, "es_Es.utf-8");
print "ahora:".setlocale(LC_ALL, 0)."<br />";
y me aparece esto por pantalla :
Cita:
ahora:LC_COLLATE=C;LC_CTYPE=Spanish_Spain.1252;LC_ MONETARY=C;LC_NUMERIC=C;LC_TIME=C
Despues he querido meter en la BD esto: Álba García García, pero sigo con el problema pq por pantalla me aparece:


Cita:
ぬba--> este es el nombre es decir Álba
îGarcía--->esto tendría que ser: Á.García
Las páginas las codifico todas enn utf-8, y en la base de datos, cuando inserto cosas con tilde, no tengo ningún problema, pq las mete tal cual.
Incluso por ejemplo cuando se trata de por ejemplo: Daniel García García, me mete en la BD: D.García.
No sé ya como solucionarlo, pq parece que las tildes SI las reconoce... pero cuando se trata de insertar la primera letra con tilde, ya no la acepta.....
Por favor, alguien sabe como puedo solucionarlo...????
Gracias!!!

Hola, alguien puede ayudarme, y decirme como puedo solucionarlo??
Gracias x la posible ayuda!!!!!

Help!!!!!!!!

Última edición por GatorV; 01/07/2008 a las 14:41
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 20:49.