Foros del Web » Programando para Internet » PHP »

fopen/fread de archivos php

Estas en el tema de fopen/fread de archivos php en el foro de PHP en Foros del Web. Holas, soy nuevo en el foro y tengo el siguiente problema...... Necesito leer un archivo php, el cual contiene algo html y php combinado. entonces ...
  #1 (permalink)  
Antiguo 05/01/2010, 11:54
 
Fecha de Ingreso: enero-2010
Mensajes: 36
Antigüedad: 14 años, 3 meses
Puntos: 2
fopen/fread de archivos php

Holas, soy nuevo en el foro y tengo el siguiente problema......

Necesito leer un archivo php, el cual contiene algo html y php combinado.
entonces lo hago de la siguiente forma.

Código PHP:
Ver original
  1. <?php
  2. echo fread(fopen("archivo.php", "r"), filesize("archivo.php"));
  3. ?>

pero no me muestra los codigos php, sino que los imprime en el codigo fuente de la pagina resultante..

se puede dar solucion a ello o estoy mal??

Gracias.
  #2 (permalink)  
Antiguo 05/01/2010, 11:56
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, 11 meses
Puntos: 1517
Respuesta: fopen/fread de archivos php

El codigo de PHP para que lo puedas leer bien, tienes que leerlo de un archivo de texto. Porque el interprete de PHP lo que va a permitirte ver es todo lo que sea HTML solamente si lo ingresas en un archivo de PHP. Ya que ejecuta el código de PHP y luego el fread va a leer el resultado.
__________________
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 05/01/2010, 11:57
Avatar de TKZeXe  
Fecha de Ingreso: diciembre-2009
Ubicación: Flowers
Mensajes: 166
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: fopen/fread de archivos php

para empezar y no enredarse Asi es lo correcto :) :

Código PHP:
Ver original
  1. <?php
  2. $sp=fopen("archivo.php", "r");
  3. echo fread($sp,filesize("archivo.php"));
  4.       ?>

Última edición por TKZeXe; 05/01/2010 a las 12:03
  #4 (permalink)  
Antiguo 05/01/2010, 12:03
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: fopen/fread de archivos php

si si.... de acuerdo con los chicos.
agrego que en realidad el navegador importa los textos como string siempre, el tema es que los motores del servidor lo reconosen como script.
  #5 (permalink)  
Antiguo 05/01/2010, 12:07
Avatar de TKZeXe  
Fecha de Ingreso: diciembre-2009
Ubicación: Flowers
Mensajes: 166
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: fopen/fread de archivos php

Ahora con esto deberia poder mostrarte bien todo.
me avisas si te funciona bien.

Código PHP:
Ver original
  1. $fo=fopen("archivo.php","r");
  2. $result=fread($fo,filesize("archivo.php"));
  3. $result=nl2br(htmlspecialchars($result));
  4. echo $result;
  #6 (permalink)  
Antiguo 05/01/2010, 12:13
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, 11 meses
Puntos: 1517
Respuesta: fopen/fread de archivos php

Yo sugeriría en vez de usar htmlspecialchars, que usara htmlentities, para convertir otros caracteres especiales tambien, pero es solo sugerencia. Y tambien usar el segundo parametro ENT_QUOTES.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 05/01/2010, 12:17
Avatar de TKZeXe  
Fecha de Ingreso: diciembre-2009
Ubicación: Flowers
Mensajes: 166
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: fopen/fread de archivos php

Cita:
Iniciado por abimaelrc Ver Mensaje
Yo sugeriría en vez de usar htmlspecialchars, que usara htmlentities, para convertir otros caracteres especiales tambien, pero es solo sugerencia. Y tambien usar el segundo parametro ENT_QUOTES.
Buena idea pero yo mantendria las comillas , porque puede ser que al leer el php
quieras ejecutar algun codigo dandole un eval.
por ser mas comodo , decia.. ^^

ENT_NOQUOTES
  #8 (permalink)  
Antiguo 05/01/2010, 12:21
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: fopen/fread de archivos php

Cita:
Iniciado por TKZeXe Ver Mensaje
para empezar y no enredarse Asi es lo correcto :) :

Código PHP:
Ver original
  1. <?php
  2. $sp=fopen("archivo.php", "r");
  3. echo fread($sp,filesize("archivo.php"));
  4.       ?>
"lo correcto"? es exactamente lo mismo que en el OP, solo con una linea/variable/asignacion mas :/
  #9 (permalink)  
Antiguo 05/01/2010, 18:46
 
Fecha de Ingreso: enero-2010
Mensajes: 36
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: fopen/fread de archivos php

Muchas gracias por sus respuestas pero ninguno da con la respuesa......

he probado con el htmlspecialchars y el htmlentities, pero ambos lo que hacen es ahora pintarme todo el codigo fuente en la misma web.

el ENT_QUOTES o el ENT_NOQUOTES, no afectan en nada al resultado, al menos no a mi web (quizas a otras con comillas si).

lo encerre en un eval, pero ahora me sale error, por que hay simbolos o cosas que no acepta el eval.....

Por ultimo, probe poniendo toda mi web en un txt, pero igual, solo me muestra el html, y en el codigo fuente muestra el php tal como esta.

Ayuda por favor, yo se que hacen todo lo que pueden.... pero creo que es algo que ya debe de haber tenido solucion hace mucho no????

Como puedo hacer para leer, almacenar y/o mostrar el contenido de otros archivos php (no tiene nada que ver con include o require eh).

Gracias por sus preciados tiempos.
  #10 (permalink)  
Antiguo 05/01/2010, 19:18
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: fopen/fread de archivos php

mmmmmm

y para que deseas eso???

podrias tomar de ejemplo lo que hace el Smarty, que procesa archivos php, pero usa su propia forma de trabajo, nose podrias crear tu forma de trabajo para leer los archivos php no??
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #11 (permalink)  
Antiguo 06/01/2010, 01:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: fopen/fread de archivos php

la pregunta real sería: ¿quieres leer el código PHP o interpretarlo??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 06/01/2010, 12:11
 
Fecha de Ingreso: enero-2010
Mensajes: 36
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: fopen/fread de archivos php

mi problema es que deseo obtener el contenido de un archivo, el cual puede contener html y php a la vez.... y almacenarlo en una variable, para luego hacer operaciones con este.

algo asi como lo que menciono masterojitos, que hace el smarty..
con fetch, almacena una plantilla en una variable y luego la imprime en algun otro lugar.
y alternativamente se pueden usar filtros para alterar la salida de informacion del archivo.

entonces eso necesito.... obtener y almacenar el contenido de un archivo, pero mi problema es que al mostrarlo no ejecuta los codigos php.

Gracias.
  #13 (permalink)  
Antiguo 06/01/2010, 12:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: fopen/fread de archivos php

perfecto, ahora si ha quedado bien claro:

- primero obtienes el contenido del archivo, con file_get_contents() basta!!
- ahora, ya teniendo el contenido en tu variable la manipulas como desees...
- al momento de imprimir tienes que usar eval() pero correctamente

Código PHP:
<?php
$foo 
'<h1>BAR</h1><?php echo phpversion(); ?><br />';
echo eval(
"?>$foo");
?>
¿porque así?

consulta el manual...
http://php.net/eval
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 06/01/2010, 12:52
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: fopen/fread de archivos php

ps en todo caso lo solucionas cambiando este codigo:
Código PHP:
Ver original
  1. <?php
  2. echo fread(fopen("archivo.php", "r"), filesize("archivo.php"));
  3. ?>

por el siguiente:
Código PHP:
Ver original
  1. <?php
  2. eval("?>".fread(fopen("archivo.php", "r"), filesize("archivo.php")));
  3. ?>

o podrias usar la opcion del gran pateketrueke, y hacerlo asi:
Código PHP:
Ver original
  1. <?php
  2. eval("?>".file_get_contents("archivo.php"));
  3. ?>

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #15 (permalink)  
Antiguo 06/01/2010, 12:56
 
Fecha de Ingreso: enero-2010
Mensajes: 36
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: fopen/fread de archivos php

muchisimas gracias pateketrueke y especialmente masterojitos... les daria karma pero soy nuevo ^^

pateketrueke, como me dijiste si sale.... era que no sabia que tenia que anteponerle al eval "?>"..... y ps cuando estuve buscando en la web de php, no revise mas abajo en los comentarios.... =P

masterojitos, sale perfecto con los dos que has puesto.....

Muchas gracias una vez mas a los dos y a quienes siempre estan ayudando en el foro.

hasta otra oportunidad.

Etiquetas: Ninguno
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 00:04.