Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/05/2004, 16:10
herrezuelo
 
Fecha de Ingreso: abril-2004
Ubicación: Madrid
Mensajes: 159
Antigüedad: 19 años, 11 meses
Puntos: 0
Sockets HTTP vs PHP

Jau,
No se, no me lo explico, no encuentro el problema, a ver si alguen sabe algo . . .

Tengo un script php que abre un sockets , envia un comando get a un servidor y la respuesta la vuelca en un fichero, el codigo del script en question es este :

<?php
function GetHTML ($url, &$delta, $corto = false, $complet = true) {
$url_stuff = parse_url($url);
$fp = fsockopen ($url_stuff['host'], 80, $errno, $errstr, 30);
if (!$fp) {
exit;
}
else {
$header = "GET " . $url_stuff['path'] . "?" . $url_stuff['query'] ;
$header = $header . " HTTP/1.0\r\nHost: " . $url_stuff['host'] . "\r\n\r\n";
fputs ($fp, $header);
//Separar contenido...
$header = '';
$body = '';
$act = false;
$fin = false;
while ((!feof($fp)) && !$fin) {
$line = fgets ($fp,1024);

if (!$act) {
if (strpos($line, "\r\n", 0) == 0) {
$header .= $line;
if (!$complet) $fin = true;
$act = true;
} else {
$header .= $line;
}
} else {
if ($corto) {
if (eregi ("<body([^>]*)>", $line, $o)) $fin = true;
}
if (!$fin) $body = $body . $line;
}
}
//Seguir location...
$ret = strpos($header, "Location:", 0);
if ($ret !== false) {
//$fin = strpos($header, "\r\n", $ret +9);
$nueva = substr($header, $ret+9, $fin - $ret - 9);
$body = GetHTML($nueva, $delta, $corto, $complet);
} else {
$delta = $url;
}

fclose ($fp);
}
return $body;
}

$url = "http://www.invertia.com/mercados/acciones/default.asp?idtel=IB011CONTINU";
$f1=fopen("prueba2.txt","w+");
fwrite($f1,GetHTML($url,$a,false,true));
fclose($f1);
?>


Pues cuando intento sacar el codigo HTML de esa pagina . . . no me devuelve todo, me devuelve todo lo que no son dato, podeis ejecutar eso y luego ver el codigo de la pagina y vereis como se corta, no se por que, en otras paginas no me pasa en otras paginas funciona de llujo pero en esa no me devuelve bien su codigo, me podria decir alguien algun motivo????
no lo entiendo (<NOLAYER> ahi se corta y no s epor que)

Gracias y un saludo.