Foros del Web » Programando para Internet » PHP »

Fopen ¿Tamaño del Fichero?

Estas en el tema de Fopen ¿Tamaño del Fichero? en el foro de PHP en Foros del Web. Saludos ...... Necesito de la ayudad de alguien: Observen el siguiente script... Código PHP: $url = $HTTP_POST_VARS [ 'url' ]; $file  = @ fopen  ( $url ...
  #1 (permalink)  
Antiguo 26/06/2003, 12:36
 
Fecha de Ingreso: diciembre-2002
Mensajes: 100
Antigüedad: 21 años, 4 meses
Puntos: 1
Fopen ¿Tamaño del Fichero?

Saludos ......

Necesito de la ayudad de alguien:

Observen el siguiente script...

Código PHP:
$url=$HTTP_POST_VARS['url'];
$file = @fopen ($url"r");
if (!
$file) {
    echo 
"<p>Imposible leer esta página.\n";
    exit;
}
while (!
feof ($file)) {
    
$line fgets ($file1024);
        
/* This only works if the title and its tags are on one line */
    
if (eregi ("<title>(.*)</title>"$line$out)) {
        
$title $out[1];
        break;
    }
}
fclose($file); 
Con esto visitu una URL, y extraigo el titulo de la página asociada a la url en cuestión.

Hasta este punto, todo bien.
La pregunta:
¿Como puedo averiguar cuanto pesa en Kb, el fichero que he leido?

Gracias de antemano.....
  #2 (permalink)  
Antiguo 26/06/2003, 13:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Hay que revisar el manual oficial primero para ver si hay alguna funcion que ya realiza esa funcion. Mira que casualidad, www.php.net/filesize .

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 26/06/2003, 21:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. leyendo la documentación al respecto de filesize() .. ya veras (si no lo has hecho yá ..) que de forma remota filesize() no ten entrega dicho valor (osease .. ninguna página que llamees vía http:// .. )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 27/06/2003, 10:10
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Y que pasa si en lugar de "romper" cuando encuentres el título, lo dejas continuar y vas escribiendo cada linea en un archivo temporal.txt, y luego haces un filesize() en tu archivo temporal.txt local? Luego lo borras y listo.

Por cierto, puedes mejorar el eregi() que tienes para que lea el titulo aunque esté asi:

<title>
Este es el titulo
</title>

este sería el código:

Código PHP:
    if (eregi ("<title>([\n|\r]*)(.*)([\n|\r]*)</title>"$cadena$out)) {
        
$title $out[2]; 
__________________
Manoloweb
  #5 (permalink)  
Antiguo 27/06/2003, 13:56
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Pues no me habia fijado en esa limitacion de filesize() ni que lo queria usar en ficheros remotos.

Manoloweb, no es necesario que guarde los datos en un fichero. Simplemente deberia contabilizar el numero de bytes leidos. Algo asi:
Código PHP:
$tamano=0;  // donde vamos a guardar el numero de bytes del fichero
while (!feof ($file)) {

    
$line fgets ($file1024);
    
    
$tamano+=strlen($line);

        
/* This only works if the title and its tags are on one line */

    
if (eregi ("<title>(.*)</title>"$line$out)) { // aqui iria la de Manoloweb

        
$title $out[1];

        
// break;  // queremos leer todo el fichero

    
}


Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 27/06/2003, 21:48
 
Fecha de Ingreso: diciembre-2002
Mensajes: 100
Antigüedad: 21 años, 4 meses
Puntos: 1
OK....

Gracias por la Ayuda....

Existira otra manera de lograr lo que necesito?



Ya coloque la sugerencia de Manoloweb, tienes razon en esto...

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 16:15.