Foros del Web » Programando para Internet » PHP »

contenido de include a una cadena

Estas en el tema de contenido de include a una cadena en el foro de PHP en Foros del Web. Hola, existe alguna función que pueda tomar un archivo .php, procesarlo, y devolver el resultado (html) en una cadena? Es decir, la función debería hacer ...
  #1 (permalink)  
Antiguo 11/12/2009, 15:08
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
contenido de include a una cadena

Hola, existe alguna función que pueda tomar un archivo .php, procesarlo, y devolver el resultado (html) en una cadena?
Es decir, la función debería hacer lo mismo que include(), pero en lugar de devolver un int, devolver un string con el codigo html resultante de haber procesado el archivo .php.
  #2 (permalink)  
Antiguo 11/12/2009, 15:11
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: contenido de include a una cadena

No entiendo la pregunta, con include no devuelve un int sino más bien lo que tengas declarado en ese archivo de php. ¿Podrías mejor dar un ejemplo de lo que quieres hacer?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 11/12/2009, 15:12
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: contenido de include a una cadena

include() no te devuelve un int.....

Podrias hacer algo asi, en un archivo.php

include("tuArchivoAIncluir.php");

//proceso

$variable;

//bucle

$variable .= "algo";


//luego

echo $variable;
  #4 (permalink)  
Antiguo 11/12/2009, 15:38
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Respuesta: contenido de include a una cadena

Ok, me equivoqué, include() no devuelve un int.
A ver si me explico.

Tengo un script php que su función es leer los datos de un carro de compras y mostrarlo en una tabla. Así hago un include() desde cualquier otra página y muestre el contenido del carro. Mi idea es reutilizar ese código como si fuera una plantilla para enviar un mail en formato html.
Algo asi:

Código PHP:
<?php
    
//leo la plantilla del mail
    
$msg=file_get_contents("plantilla-mail.html");
    
//leo y proceso el codigo del carro
    
$carro=funcion_desconocida("carro.php");
    
//reemplace etiqueta carro de la plantilla por el valor de $carro
    
$msg=str_replace("[carro]",$carro,$msg);
    
//envio mail
    
...
?>
Existe esa función desconocida?

PD: file_get_contents() devuelve el codigo php sin procesar.
  #5 (permalink)  
Antiguo 12/12/2009, 11:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: contenido de include a una cadena

Con file_get_contents, puedes ver el resultado del carrito de compras, o con cURL o algun socket. Mira aqui varios ejemplos http://www.forosdelweb.com/f18/aport...equest-724214/
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 12/12/2009 a las 11:36
  #6 (permalink)  
Antiguo 12/12/2009, 12:04
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Respuesta: contenido de include a una cadena

Ya probé con file_get_contents() pero como el archivo carro.php tiene codigo php, ese código es "pegado" a la plantilla sin interpretar.
  #7 (permalink)  
Antiguo 12/12/2009, 12:06
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: contenido de include a una cadena

Imposible, porque file_get_contents no trae codigo de PHP, sino el resultado de PHP. De casualidad ¿tu estas corriendo un archivo php que esta en el servidor o un archivo que contiene el codigo de PHP?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 12/12/2009, 12:20
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Respuesta: contenido de include a una cadena

Entiendo que el comportamiento de leer un archivo desde otro sitio web es que te entregue el resultado en html, pero este archivo está aqui mismo y file_get_contents() lee el archivo y entrega su contenido ese es su comportamiento.
Voy a probar colocando la ruta al archivo como una URL, para forzar a que se interprete.
  #9 (permalink)  
Antiguo 12/12/2009, 18:16
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Respuesta: contenido de include a una cadena

Si coloco file_get_contents("http://localhost/carro.php") funciona, es decir, entrega el resultado de interpretar carro.php.
Lo malo es que pierde la sesión, mejor dicho, abre otra sesión y por tanto pierde los valores de sesión anterior, los cuales necesitaba.
  #10 (permalink)  
Antiguo 13/12/2009, 08:51
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: contenido de include a una cadena

Podrías indicarle el cookie del ID de la sesion que estas usando, mira los ejemplos que te indique en el link que te había indicado para que veas como hacerlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
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 15:59.