duda con ob_start()

Rodrigo Fuentealba darkprox en gmail.com
Mie Feb 21 07:55:39 CLST 2007


El 20/02/07, Felipe Tornvall N. <lpct en linux.pctools.cl> escribió:
>
> Buenas lista !!!

Buenos Días

> estoy tratando de capturar el trafico (uso de kb)...de un sitio mediante
> php... la idea es usar la siguiente estructura:
>

ob_start y demases... buena idea

> el tema es q funciona bien....
> pero si dentro del contenido del sitio aparece
> <img src="imagen.jpg"> no logro tomar el tamaño de esta...

busca dentro de lo que estás midiendo las siguientes cosas ( * es un comodin):

src=" * " ; href=" * "

si * no comienza con http:// y file_exists( * ), entonces tamano =
tamano + filesize(*);

de otra manera, esta funcion funciona:

<?php
   function url_exists($url) {
       $a_url = parse_url($url);
       if (!isset($a_url['port'])) $a_url['port'] = 80;
       $errno = 0;
       $errstr = '';
       $timeout = 30;
       if(isset($a_url['host']) &&
$a_url['host']!=gethostbyname($a_url['host'])){
           $fid = fsockopen($a_url['host'], $a_url['port'], $errno,
$errstr, $timeout);
           if (!$fid) return false;
           $page = isset($a_url['path'])  ?$a_url['path']:'';
           $page .= isset($a_url['query'])?'?'.$a_url['query']:'';
           fputs($fid, 'HEAD '.$page.' HTTP/1.0'."\r\n".'Host:
'.$a_url['host']."\r\n\r\n");
           $head = fread($fid, 4096);
           $head = substr($head,0,strpos($head, 'Connection: close'));
           fclose($fid);
           if (preg_match('#^HTTP/.*\s+[200|302]+\s#i', $head)) {
           $pos = strpos($head, 'Content-Type');
           return $pos !== false;
           }
       } else {
           return false;
       }
   }
?>

para saber si la URL existe... y decir "solo lo que se ha cargado en
el server es... tanto; imagenes obtenidas desde otro server = X;

funciones para eso,

http://cl2.php.net/manual/es/function.file-exists.php
http://cl2.php.net/manual/es/function.filesize.php
http://cl2.php.net/manual/es/function.is-file.php

> lo pensé usando
> imagesize (http://cl2.php.net/getimagesize), pero en el momento q la imagen no
> es jpg o gif..... o no mantiene el nombre dado.... no se.... muy complicado
> encuentro..... aunque es una posible solucion..... si alguien conoce una
> unica funcion q logre capturar el tamña total de la pagina desplegada por
> parte del cliente (incluyendo <img src="">) sería de gran utilidad,
>
> muchas gracias !
>

-- 
Rodrigo Fuentealba Cartes
Desarrollador de Sistemas Web
Registered User 387639 - http://counter.li.org



Más información sobre la lista de distribución PHP