Comunidad de diseño web y desarrollo en internet online

fopen no lee el archivo desde el comienzo

Citar            
MensajeEscrito el 17 Ago 2012 05:38 pm
Hola gente, tengo un pequeño inconveniente con un script y no se por donde comenzar a buscar.. el script funciona bien pero puesto bajo otro contexto tiene un error.

Tengo una función que lee el contenido de una archivo y explora las líneas de comentarios para obtener “cabeceras” del archivo creadas por el usuario.. Muy similar como lo hace Wordpress para leer la información de un plugin. La función marcha bien si la pruebo en un archivo separado del sistema que estoy realizado, ahora cuando la pruebo ya incluida en el sistema no lee toda la información del archivo sino que pareciera que el puntero de apertura estuviera mucho después del comienzo del archivo aun así la función ftell indica que el puntero esta en 0.

Archivo a leer:

Código PHP :

// nombre: Mi Documento
// version: 2.0
// descripción: Mi documento de prueba

function iniciar_documento(){
   global $registro;
   $registro -> iniciar(‘documento-uno’);
}


Al archivo lo cargo con:

Código PHP :

$Lectura = fopen($Archivo, 'r');
$Informacion = stream_get_contents($Lectura);
fclose($Lectura);   


Contenido que me devuelve en la variable $Informacion

Código PHP :

iniciar_documento(){
   global $registro;
   $registro -> iniciar(‘documento-uno’);
}


Noten que todo lo anterior no lo carga, si quito los comentarios entonces me carga por ejemplo

Código PHP :

   $registro;
   $registro -> iniciar(‘documento-uno’);
}


Es decir como si el puntero de lectura estuviera desfasado

Alguien sabe quizás porque suceda esto? O por donde puedo comenzar a investigar? Es la primera vez que me ocurre.

Saludos!

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

chrome
Citar            
MensajeEscrito el 17 Ago 2012 05:47 pm
Prueba hacer un rewind($Lectura) antes de stream_get_contents.

Aunque me parece, por lo que quieres hacer, que solamente necesitas esto:

Código PHP :

$Archivo = "archivo.txt";
$Informacion = file_get_contents($Archivo);
print_r($Informacion);

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 17 Ago 2012 06:03 pm
Nop... ya probé con rewind y continua igual, también probé con file_get_contents y fread y en todos los casos me devuelve lo mismo

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

chrome
Citar            
MensajeEscrito el 18 Ago 2012 01:36 pm
El problema no está en PHP sino en el sistema de archivo.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 19 Ago 2012 12:44 pm
explicación para eso?... pienso algo.. porque cuando lo pruebo fuera del sistema que estoy desarrollando lee bien? digamos puede que algo en el sistema este alterando la lectura pero si fuese eso por donde buscar?

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

chrome
Citar            
MensajeEscrito el 19 Ago 2012 03:11 pm
Lo ingnoro. Tendría que estar sentado a la máquina en cuestión para saberlo...

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 19 Ago 2012 04:14 pm
bien pero si decís "El problema en el sistema de archivo." por donde puedo comenzar a corroborar eso?

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

chrome
Citar            
MensajeEscrito el 19 Ago 2012 05:52 pm
Con otros archivos, en otra parte del sistema, con otros métodos de lectura y otros lenguajes, para descartar problemas con PHP.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 19 Ago 2012 11:43 pm
Una curiosidad que detecte es lo siguiente, si en ves de leer una archivo php leo un archivo txt carga todo el contenido pero con los de extencion php se desfasa... se les ocurre algo con eso?

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

chrome
Citar            
MensajeEscrito el 20 Ago 2012 09:30 pm
Bien, hice dos pruebas una a modo local y otra directa en el host, el problema ni siquiera esta en el sistema que estoy generando ya que quite la función y la probé fuera del sistema y continua teniendo el incombeniente, en el host también tiene el mismo problema por lo que ya me confirma que el problema ocurre con PHP.

una curiosidad es que si cargo un archivo TXT lo lee perfecto de principio a fin con los archivos de extencion .PHP ocurre lo sigueinte:

index.php

Código PHP :

<?php
   $archivo = 'uno.php';
   
   $lectura = fopen($archivo, 'rb' );

   $informacion = fread($lectura, filesize($archivo));

   fclose($lectura);

   print_r($informacion);
?>


uno.php

Código PHP :

<?php

   // nombre: Mi Documento
   // version: 2.0
   // descripción: Mi documento de prueba

   function iniciar_documento(){
      global $registro;
      $registro -> iniciar('documento-uno');
   }
   
?>


dos.php

Código PHP :

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis imperdiet varius risus a congue. Aliquam erat volutpat. Maecenas sollicitudin, dui at feugiat facilisis, est diam fringilla erat, non luctus dolor velit id mi.

<?php

   // nombre: Mi Documento
   // version: 2.0
   // descripción: Mi documento de prueba

   function iniciar_documento(){
      global $registro;
      $registro -> iniciar('documento-uno');
   }
   
?>


si se lee el archivo uno.php muestra lo siguiente:

Código PHP :

       global $registro;
      $registro -> iniciar('documento-uno');
   }
   
?>


si se lee el archivo dos.php muestra:

Código PHP :

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis imperdiet varius risus a congue. Aliquam erat volutpat. Maecenas sollicitudin, dui at feugiat facilisis, est diam fringilla erat, non luctus dolor velit id mi.

      global $registro;
      $registro -> iniciar('documento-uno');
   }
   
?>


alguna otra sugerencia?

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

chrome
Citar            
MensajeEscrito el 20 Ago 2012 10:04 pm
Pueden ver un ejemplo aca:

http://dantepiazza.com.ar/read/?archivo=uno

http://dantepiazza.com.ar/read/?archivo=dos

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

chrome
Citar            
MensajeEscrito el 21 Ago 2012 02:36 pm
Amigo, yo no veo ningún problema con ninguno de los dos casos que has expuesto.

Al cargar los dos casos y ver en el navegador el código fuente HTML resultante, allí están los contenidos que deberían estar.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 21 Ago 2012 07:22 pm
En los dos ejemplos que muestro:

En la parte superior aparece lo que fread carga y luego donde dice "Deberia mostrar" lo que realmente debería mostrar arriba

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

chrome
Citar            
MensajeEscrito el 21 Ago 2012 09:05 pm
en tu codigo

Código PHP :

<?php
   $archivo = 'uno.php';
   $lectura = fopen($archivo, 'rb' );
   $informacion = fread($lectura, filesize($archivo));
   fclose($lectura);
   print_r($informacion);
?>

modifica esto , mira si es el resutlado que quieres obtener

Código PHP :

<?php
   $archivo = 'uno.php';
   $lectura = fopen($archivo, 'rb' );
   $informacion = fread($lectura, filesize($archivo));
   fclose($lectura);
$informacion = htmlentities($informacion);
   print_r($informacion);
?>

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Ago 2012 09:13 pm
Bien!!! diste en la tecla tuadmin... muchas gracias! problema resuelto!

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

chrome
Citar            
MensajeEscrito el 21 Ago 2012 09:58 pm
bueno solo para aclarar la forma en la que estabas haciendo esta bien , solo que no tom,aste en cuenta al navegador web , que el mismo trata de interpretar los simbolos "<" , ">" , lo que hace la funcion "htmlentities" es convertir esos simbolos para que no los interprete el navegador

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.