Foros del Web » Programando para Internet » PHP »

armar una función con trim, str_replace y ucwords

Estas en el tema de armar una función con trim, str_replace y ucwords en el foro de PHP en Foros del Web. Hola, quisiera armar una función para quitar los espacios, cambiar los acentos por acutes y poner la primera letra de cada palabra en mayúscula. Armé ...
  #1 (permalink)  
Antiguo 02/12/2012, 18:25
 
Fecha de Ingreso: diciembre-2012
Ubicación: kraks see tee
Mensajes: 8
Antigüedad: 11 años, 4 meses
Puntos: 0
armar una función con trim, str_replace y ucwords

Hola, quisiera armar una función para quitar los espacios, cambiar los acentos por acutes y poner la primera letra de cada palabra en mayúscula.
Armé el código y funciona a la perfección, pero quisiera insertar todo esto dentro de un "function", y al hacerlo, deja de funcionar. Esto es lo que hice:

Código PHP:
<?php
$texto
="   JUANITO JOSé ALIMAña PéREz  ";
$texto=trim($texto);
$texto=ucwords(strtolower($texto));
echo 
$cambio str_replace(array("á","é","í","ó","ú","ñ"),
                           array(
"&aacute;","&eacute;","&iacute;","&oacute;","&uacute;","&ntilde;"),
                           
$texto);

// IMPRIME Juanito José Alimaña Pérez

?>
Ahí hace todo lo que quiero, pero lo que tengo que hacer es meterlo dentro de un "function", e intenté hacerlo de esta forma:

Código PHP:
<?php
$texto
="   JUANITO JOSé ALIMAña PéREz  ";
function 
cambiar($texto)
{
$texto=trim($texto);
$texto=ucwords(strtolower($texto));
echo 
$cambio str_replace(array("á","é","í","ó","ú","ñ"),
                           array(
"&aacute;","&eacute;","&iacute;","&oacute;","&uacute;","&ntilde;"),
                           
$texto);
return 
$texto;
}
echo 
$texto;
?>
Cuando hago esto, no imprime nada, se queda en blanco, dónde está mi error? Yo lo veo bien, pero obviamente estoy perdiéndome de algo.

AYUDA POR FAVOR y gracias de antemano!
  #2 (permalink)  
Antiguo 02/12/2012, 18:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: armar una función con trim, str_replace y ucwords

1) El echo no tiene sentido dentro de la función.
2) Debería ser return $cambio ya que es la variable que contiene el reemplazo de los acentos
3) Debes llamar a la función para obtener el resultado cambiar('el texto que quieres cambiar')
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 02/12/2012, 18:35
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: armar una función con trim, str_replace y ucwords

Tienes hecha la función, pero no la invocas por ningún sitio. Algo así:
Código PHP:
Ver original
  1. echo cambiar($texto);

Luego, tienes en la función ya un echo que te imprime el resultado, luego el return sobra —o sobra el echo si invocas la función como mencioné arriba. Si sobrara el echo en la función, bastaría con declarar la variable $cambio en vez de imprimirla.

Básicamente, una función es más bien algo así:
Código PHP:
Ver original
  1. function saluda($nombre) {
  2.   $resultado = "Hola ".$nombre."!";
  3.   return $resultado;
  4. }
  5. // Y aquí llamas/invocas la función
  6. echo saluda("Jose");
  7. // Imprime: Hola Jose!
  8. echo saluda("Juan");
  9. // Imprime: Hola Juan!
  #4 (permalink)  
Antiguo 02/12/2012, 20:00
 
Fecha de Ingreso: diciembre-2012
Ubicación: kraks see tee
Mensajes: 8
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: armar una función con trim, str_replace y ucwords

Un millón de gracias! Ya está lista y funciona perfecto.

Etiquetas: armar, trim
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:33.