Foros del Web » Programando para Internet » PHP »

El peso Remotamente.. AYUDA POR FAVOR

Estas en el tema de El peso Remotamente.. AYUDA POR FAVOR en el foro de PHP en Foros del Web. Como puedo mostrar el peso de un video que esta alojado remotamente, en otro server y mostrar el peso en MG en mi web ?...
  #1 (permalink)  
Antiguo 24/05/2005, 22:58
 
Fecha de Ingreso: abril-2003
Mensajes: 583
Antigüedad: 14 años, 7 meses
Puntos: 5
El peso Remotamente.. AYUDA POR FAVOR

Como puedo mostrar el peso de un video que esta alojado remotamente, en otro server y mostrar el peso en MG en mi web ?
__________________
Si la vida te da la espalda tocale el culo
  #2 (permalink)  
Antiguo 25/05/2005, 02:21
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
http://php.grn.es/manual/es/function.filesize.php

Un Saludo
  #3 (permalink)  
Antiguo 25/05/2005, 02:43
 
Fecha de Ingreso: abril-2003
Mensajes: 583
Antigüedad: 14 años, 7 meses
Puntos: 5
encontre esta funcion en php.net que por su nombre supongo que sera para sacar el tamaño a archivos remotos.

Código PHP:
                  
                  
function remote_filesize($url){
   
$url_p parse_url ($url);
   
$host $url_p['host'];
   if(isset (
$url_p['port']))
     
$remote_port $url_p['port'];
   else
     
$remote_port 80;

   
$fp = @fsockopen ($host$remote_port);
   if(!
$fp)
     return 
0;
   else
   {
     
fputs($fp'HEAD '.$url." HTTP/1.1\r\n");
     
fputs($fp'HOST: '.$host."\r\n");
     
fputs($fp"Connection: close\r\n\r\n");
     
$headers '';
     while (!
feof ($fp))
       
$headers .= fgets ($fp128);
   }
   
fclose ($fp);

   if (
preg_match('/Content-Length:\s([0-9].+?)\s/'$headers$matches)) 
     return 
$matches[1]; 
   else
     return 
0
  } 
pero siempre me saca 0 en los resultados....

alguna sugerencia ?

Salu2
__________________
Si la vida te da la espalda tocale el culo

Última edición por freedatos; 25/05/2005 a las 09:25
  #4 (permalink)  
Antiguo 25/05/2005, 09:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En principio .. filesize() no te sirve para obtener el "peso" (bytes) de un archivo remotamente, sólo sirve para archivos locales.

La función que propones debería funcionar .. pues hace una conexión HTTP (por sockets), obtiene las cabeceras HTTP y de ahí lee la que contiene el "content-length" que debería indicar el peso de esa página/archivo .. Pero ese dato puede -no ser entregado- .. así que no es seguro que siempre te funcione.

Si no te funciona el código .. empieza por evaluar que sucede .. Por ejemplo ahí se vé un "@" delante de una función .. eso "opaca" los posibles mensajes de error que puedas estar teniendo ahí mismo .. así que, quita esa @ y observa el mensaje de error que puede ser que se esté originando.

Realmente sería la opción más fiable .. pues no te "bajas" todo la página para luego ver su tamaño (que sería otra opción, usando las funciones de trabajo con el buffer de salida de PHP: ob_start() .. ob_length (o algo así ..) y ob_end_flush())

Un saludo,
  #5 (permalink)  
Antiguo 25/05/2005, 10:07
 
Fecha de Ingreso: abril-2003
Mensajes: 583
Antigüedad: 14 años, 7 meses
Puntos: 5
Cluster lo que hago es mandar a la funcion una url http://.../video.mpg mediante una variable asi:

http://www.okysex.com/exit.php?url=http://.../video.mpg

pero siempre da peso: 0

Amigo cluster este es el error que me da:

Peso:
Warning: Missing argument 1 for remote_filesize() in /home/okysex/public_html/exit.php on line 251

Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/okysex/public_html/exit.php on line 259

Warning: fsockopen(): unable to connect to :80 in /home/okysex/public_html/exit.php on line 259
0 .

¿que ocurre...?
__________________
Si la vida te da la espalda tocale el culo
  #6 (permalink)  
Antiguo 25/05/2005, 10:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pon el código completo que usas .. por qué el valor de $url no parece que esté llegando a dicha función .. y en consecuencia todo cae (errores) en cascada.

Un saludo,
  #7 (permalink)  
Antiguo 25/05/2005, 10:47
 
Fecha de Ingreso: abril-2003
Mensajes: 583
Antigüedad: 14 años, 7 meses
Puntos: 5
eL CODIGO ES:

Código PHP:
<? 
                  
function remote_filesize($url){ 
   
$url_p parse_url ($url); 
   
$host $url_p['host']; 
   if(isset (
$url_p['port'])) 
     
$remote_port $url_p['port']; 
   else 
     
$remote_port 80

   
$fp fsockopen ($host$remote_port); 
   if(!
$fp
     return 
0
   else 
   { 
     
fputs($fp'HEAD '.$url." HTTP/1.1\r\n"); 
     
fputs($fp'HOST: '.$host."\r\n"); 
     
fputs($fp"Connection: close\r\n\r\n"); 
     
$headers ''
     while (!
feof ($fp)) 
       
$headers .= fgets ($fp128); 
   } 
   
fclose ($fp); 

   if (
preg_match('/Content-Length:\s([0-9].+?)\s/'$headers$matches)) 
     return 
$matches[1]; 
   else 
     return 
0
  } 
echo 
remote_filesize();
?>
Y RECIBE URLS COMO:
http://www.okysex.com/exit.php?id=.....images/003.mpg

ESO ES...
__________________
Si la vida te da la espalda tocale el culo
  #8 (permalink)  
Antiguo 25/05/2005, 11:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues fijate ..
echo remote_filesize();

donde le pasas el valor del URL a dicha función? .. Si estás asumiendo que lo tome dentro de tu función .. tu función no la obtiene como global .. hay que pasarla como parámetro!.

Código PHP:
echo remote_filesize($_GET['url']); 
El ambito de las variables en una función es restringido .. o se lo pasas como parámetro o se declaran como globales .. (global .. ) (a no ser que uses los arrays superglobales ..)

Un saludo,
  #9 (permalink)  
Antiguo 25/05/2005, 11:56
 
Fecha de Ingreso: abril-2003
Mensajes: 583
Antigüedad: 14 años, 7 meses
Puntos: 5
Cluster aqui tambien hay que recojerlo con el metodo GET ?

Código PHP:
function remote_filesize($url){ 
   
$url_p parse_url ($url); 
__________________
Si la vida te da la espalda tocale el culo
  #10 (permalink)  
Antiguo 25/05/2005, 12:04
 
Fecha de Ingreso: abril-2003
Mensajes: 583
Antigüedad: 14 años, 7 meses
Puntos: 5
VALE Cluster ya me da el peso, ahora para dar el resultado en megas como lo puedo hacer ?
__________________
Si la vida te da la espalda tocale el culo
  #11 (permalink)  
Antiguo 25/05/2005, 12:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En la misma documentación oficial de PHP sobre filesize() (en los comentarios de los usuarios) tienes ejemplos del cálcula a realizar para obtener ese dato (bytes) en sus MB .. KB y Bytes que correspondan.

Un saludo,
  #12 (permalink)  
Antiguo 25/05/2005, 12:52
 
Fecha de Ingreso: abril-2003
Mensajes: 583
Antigüedad: 14 años, 7 meses
Puntos: 5
Gracias cluster, otra pregunta y ya te dejo de freir jaja

sabiendo el peso como sabemos ya como podia hacer un calculo de cuanto puede tardar en bajar del video con la conxion del usuario?

me explico?
__________________
Si la vida te da la espalda tocale el culo
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 02:02.