Ciao
spero possiate aiutarmi perché mi sono impantanato.
Sto facendo una funzione che semplicemente fa una richiesta a una url aprendo una socket
Funziona il problema e' che la risposta e' spezzata in più parti con dei caratteri in mezzo.
E' sicuramente un problema di protocollo ma non conosco cosi bene la teoria.
Se qualcuno potesse indicarmi la via ...
Codice PHP:
function httpPost($host, $path, $data_to_send) {
$transport='tcp';
$port=80;
$remote=$transport.'://'.$host.':'.$port;
$fp = stream_socket_client( $remote, $err, $errstr, 60);
if (!$fp) {
trigger_error('httpPost error: '.$errstr);
return NULL;
}
$endLine = "\n";
$req='';
$req.="GET ".$path." HTTP/1.1".$endLine;
$req.='Host: '.$host.$endLine;
$req.='User-Agent: Mozilla/5.0 (X11; U; Linux i686; it; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3'.$endLine;
$req.="Keep-Alive: 300".$endLine;
$req.="Connection: keep-alive".$endLine.$endLine;
//$req.='Content-length: '. strlen($data_to_send).$endLine.$endLine;
// $req.="Connection: close".$endLine.$endLine;
fputs($fp, $req);
fputs($fp, $data_to_send);
// fputs($fp, "Connection: close".$endLine.$endLine);
$res = '';
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
fclose($fp);
return $res;
}
var_dump(httpPost("it2.php.net","/manual/en/function.stream-get-line.php",""));
Questo e' un esempio la risposta mi torna cosi
Codice PHP:
header
.
.
.
Transfer-Encoding: chunked
Content-Type: text/html;charset=utf-8
239e // codice strano
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
.
.
</div>
2ee2 // altro codice strano
<div id="content" class="manual/en">
.
.
.
</div>
24e4 // ulteriore codice strano
<a name="79944"></
.
.
</body>
</html>
0 // fine della risposta
"
io volevo capire come faccio a identificare quei caratteri in messo alla risposta e a eliminarli
e quali sono le regole che mi determinano l'end body.
Ho cercato molto in giro e continuero' a cercare ma se qualcuno mi da una mano e' meglio :P
Ciao