Foros del Web » Programando para Internet » PHP »

¿Se puede redirigir la salida de un Echo?

Estas en el tema de ¿Se puede redirigir la salida de un Echo? en el foro de PHP en Foros del Web. Hola a todos! Tengo unas funciones que hacen varios echo para, por ejemplo, mostrar un formulario por pantalla. Por ejemplo: Código PHP: function  muestra (){ ...
  #1 (permalink)  
Antiguo 02/01/2007, 10:35
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 20 años, 9 meses
Puntos: 0
¿Se puede redirigir la salida de un Echo?

Hola a todos!

Tengo unas funciones que hacen varios echo para, por ejemplo, mostrar un formulario por pantalla. Por ejemplo:

Código PHP:
function muestra(){
     echo 
"Este es mi formulario";

Pero ahora me he arrepentido de este planteamiento porque en algunos casos no quiero pintar por pantalla sino guardar las salidas de esas funciones en una variable. Por ejemplo:

Código PHP:
$valor muestra(); 
Pero claro, "muestra()" no devuelve nada en realidad... entonces, a lo que quiero llegar... ¿puedo hacer algo para redirigir la salida de esos echo a mi variable sin cambiar la función original (es decir, desde la llamada)? Cambiar esas funciones para que devuelvan las cadenas en lugar de hacer echos supondría cambiar gran parte de la estructura de mi web.

Busco algo del estilo:

Código PHP:
$valor change_stdout(muestra()); 
Me parece que pido un milagro, pero tal vez se os ocurra algo :(

¡¡Gracias de antemano!!
  #2 (permalink)  
Antiguo 02/01/2007, 15:26
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Re: ¿Se puede redirigir la salida de un Echo?

Si entendi bien lo que quieres es lo siguiente:

function muestra() {
$salida = "Este es mi formulario";
return $salida;
}

$valor = muestra();

echo $valor;

Supongo q es eso lo que buscabas...
  #3 (permalink)  
Antiguo 02/01/2007, 15:45
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: ¿Se puede redirigir la salida de un Echo?

La menera que dice erlingfiallos es la que uso por el mismo problema que estas teniendo actualmente.

No se una solución directa a tu problema para que soluciones esto de manera masiva, pero intenta jugar y hacer unas pruebas con las funciones de buffer.

Referencia: http://ar2.php.net/manual/es/function.flush.php (y todas las del menú izquierdo)
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #4 (permalink)  
Antiguo 02/01/2007, 15:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: ¿Se puede redirigir la salida de un Echo?

Puedes hacer algo asi:
Código PHP:
ob_start();
muestra();
$variable ob_get_clean(); 
  #5 (permalink)  
Antiguo 03/01/2007, 04:08
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 20 años, 9 meses
Puntos: 0
Re: ¿Se puede redirigir la salida de un Echo?

Que maravilla GatorV!!!!!!!!!! Funciona genial :D :D :D :D

Muchas gracias a los tres. De ahora en adelante debería hacer las funciones devolviendo la salida y no pintando en pantalla directamente como dice erlingfiallos, pero hacerlo ahora me obligaría a hacer un cambio masivo en toda la web como dice nicolaspar, así que GatorV me ha salvado la vida xDD

Muchas gracias otra vez ;)
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 05:16.