Foros del Web » Programando para Internet » PHP »

Verificacion de ficheros vacios

Estas en el tema de Verificacion de ficheros vacios en el foro de PHP en Foros del Web. Buenas tardes querido foro... tengo frente austedes una pregunta algo dificil y que he hallado unas cuantas soluciones en internet pero ninguna me ha funcionado. ...
  #1 (permalink)  
Antiguo 20/04/2010, 17:15
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Verificacion de ficheros vacios

Buenas tardes querido foro... tengo frente austedes una pregunta algo dificil y que he hallado unas cuantas soluciones en internet pero ninguna me ha funcionado.

Basicamente quiero que codigo php me distinga a la hora de abrir un fichero si este esta vacio o no.

Intente hacerlo con filesize() para verificar si su tamaño era 0 o verificar la longitud de el arreglo devuleto por file() pero aun asi sigue fallando.

Alguien seria tan amable de verificar mi error y decirme una buena manera de resolverlo de antemano muchas gracias
  #2 (permalink)  
Antiguo 20/04/2010, 17:27
 
Fecha de Ingreso: marzo-2010
Mensajes: 51
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Verificacion de ficheros vacios

Es que generalmente un archivo nunca tiene tamaño cero, creo yo que la mejor forma es verificar que posible tamaño pueden tener tus archivos y buscar un posible tamaño menor es decir, si los archivos nunca son menores de 10 kb tons utilizar este valor. No abrir archivos a los que filesize devuelva un tamaño menor que 10 kb esa es una idea aunque no muy ortodoxa
  #3 (permalink)  
Antiguo 20/04/2010, 17:41
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 3 meses
Puntos: 36
Respuesta: Verificacion de ficheros vacios

Cita:
Iniciado por hexe Ver Mensaje
Intente hacerlo con filesize() para verificar si su tamaño era 0 o verificar la longitud de el arreglo devuleto por file() pero aun asi sigue fallando.
"Sigue fallando", ¿cómo?, ¿por qué?, ¿error?, ¿cuál?.


Cita:
Iniciado por hexe Ver Mensaje
Basicamente quiero que codigo php me distinga a la hora de abrir un fichero si este esta vacio o no.
¿Propósito?; pregunto porque no puedes saber si al momento de abrir un archivo tiene contenido, pero puedes forzar que borre cualquier cosa que tenga si vas a escribir sobre él.

Podrías saber si el archivo está vacío con la combinación de file_get_contents() y trim()... ¿te sirve?.
www.php.net/file_get_contents
www.php.net/trim
__________________
I ♥ The Music!
  #4 (permalink)  
Antiguo 20/04/2010, 18:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Tema movido desde PHP orientado a objetos a PHP
  #5 (permalink)  
Antiguo 22/04/2010, 13:37
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Respuesta: Verificacion de ficheros vacios

Cita:
Iniciado por maturano Ver Mensaje
"Sigue fallando", ¿cómo?, ¿por qué?, ¿error?, ¿cuál?.



¿Propósito?; pregunto porque no puedes saber si al momento de abrir un archivo tiene contenido, pero puedes forzar que borre cualquier cosa que tenga si vas a escribir sobre él.
Gracias por responder gente bien sere mas explicito..

Aqui mi proposito primeramente es saber si yo tengo algun error con el servidor o es problema de php

Fijate

Tengo 2 paginas php y tengo un metodo que abre el archivo en cuestion en una de ellas


el codigo del metodo de este archivo seria el siguiente (el archivo se llama subir.php)

Código PHP:
// este seria el archivo que controla todo lo que se ha de subir al servidor


//en esta funcion lo probe de la manera filesize()
//oviamente tomo $fichero como una ruta
function fichero_Vacio_metodo_1($fichero)
{

if( 
filesize($fichero) < ) { echo "el archivo esta vacio"; } // aqui  podria darme cuenta si el fichero en cuestion esta vacio

//Sin embargo.. aqui mismo sucede una falla con el metodo filesize() y el siguiente codigo no se ejecuta 

echo "hola";


}


// mi siguiente forma de evaluar lo anterior seria mediante el metodo file()
//nuevamente tomo $fichero como una ruta y no como un descriptor de archivo
function fichero_Vacio_metodo_2($fichero)
{

// esta vez mi objetivo seria usar el metodo file que te devuelve el contenido de el archivo en  un arreglo por renglones

$contenido_del_Archivo file($fichero);

// nuevamente falla y no me analiza lo siguiente

if( count($contenido_del_Archivo) < 1){echo "el archivo esta vacio"; }
}

//finalmente analizo el archivo usando un descriptor en vez de una ruta
function fichero_Vacio_metodo_3($fichero)
{

$f fopen($fichero,"r");

//nuevamente esto no se ejecuta
if(feof($f)){echo "el archivo esta vacio";}else{echo "hola";}



Bien ese ejemplo anterior fue el codigo php para los metodos que utilize en el siguiente archivo que contiene codigo html y mando llamar las funciones anteriores


Código HTML:
<form method="post" action="subir.php" enctype="multipart/form-data">
<input name="archivo" type="file" />
<input type="submit" value="Enviar"/>
</form> 
Código PHP:
// notese quee stoy usando php5
include("Subir.php");
 
$file file($_FILES['archivo']['tmp_name']);
 
 if(!empty(
$file) )
 {
echo 
archivo_Vacio_1($_FILES['archivo']['tmp_name']);
echo 
archivo_Vacio_2($_FILES['archivo']['tmp_name']);
echo 
archivo_Vacio_3($_FILES['archivo']['tmp_name']);

 }
echo 
"este codigo si se ejecutara"
Bien yo ya resolvi el problema pero de una manera ineficiente.. use banderas para ke me indicaran si el archivo esta vacio asi si fallase a la hora de verificar que esta vacio la bandera que debio haber sido cambiada en el metodo no seria cambiada y pues por concecuencia me daria cuenta de que el archivo en efecto esta vacio

Bien otra pregunta seria si habra alguna manera de capturar este error por que de ninguna forma logro que me diga un warning ni un error

De antemano gracias por sus consejos
  #6 (permalink)  
Antiguo 22/04/2010, 15:56
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 3 meses
Puntos: 36
Respuesta: Verificacion de ficheros vacios

Cita:
Iniciado por hexe Ver Mensaje
Aqui mi proposito primeramente es saber si yo tengo algun error con el servidor o es problema de php

Bien otra pregunta seria si habra alguna manera de capturar este error por que de ninguna forma logro que me diga un warning ni un error
Coloca error_reporting(E_ALL); al comienzo de tu script:
Código PHP:
Ver original
  1. <?php
  2.  
  3. // Código PHP ...
www.php.net/error_reporting

Aunque desde ya deberías de poder ver los problemas en el log de Apache...
__________________
I ♥ The Music!

Etiquetas: ficheros, vacios, verificacion
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 21:13.