Please help me to Test my fsockopen & chunked encoding scrip

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
User avatar
kaisellgren
DevNet Resident
Posts: 1675
Joined: Sat Jan 07, 2006 5:52 am
Location: Lahti, Finland.

Please help me to Test my fsockopen & chunked encoding scrip

Post by kaisellgren »

Hello,

I am working with fsockopen (raw HTTP connections) and I made a chunked transfer encoding decoder.

Code: Select all

<?php
function transfer_encoding_chunked_decode($encoded)
 {
  $decoded = '';
  while (!empty($encoded))
   {
    $explode = explode("\r\n",$encoded,2);
    $counter = hexdec($explode[0]);
    $decoded .= substr($explode[1],0,$counter);
    $encoded = substr($explode[1],$counter,strlen($explode[1])-$counter);
   }
  return $decoded;
 }
 
$fp = fsockopen("www.kaisellgren.name", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: http://www.kaisellgren.name\r\n";
    $out .= "Connection: Close\r\n\r\n";
 
    fwrite($fp, $out);
    $data = '';
    while (!feof($fp)) {
        $data .= fgets($fp, 128);
    }
    fclose($fp);
}
$parts = explode("\r\n\r\n",$data,2);
echo transfer_encoding_chunked_decode($parts[1]);
?>
To me it seems to work fine. Can you spot any problems?
Post Reply