<?
if (!($fd fsockopen("scfire-dll-aa01.stream.aol.com"80)))
    exit;

fputs($fd"GET /stream/1018 HTTP/1.0\r\n\r\n");

if (
$_SERVER['HTTP_RANGE']) {
    
header("HTTP/1.1 206 Partial");
    
header("Content-Range: bytes " $_SERVER['HTTP_RANGE'] . "/99999999");
}

header("Accept-Ranges: bytes");
header("Content-Length: 99999999");
header("Content-Type: audio/mpeg");

# skip ICY response headers
while (($buf fgets($fd4096))) {
     
$buf rtrim($buf);
     if (
$buf == "")
         break;
}

$attempt 0;

# synchronize with first MP3 frame
while (($buf fread($fd4096))) {
    
$attempt++;
#    echo "Read " . strlen($buf) . " bytes\n";flush();
#    echo "buf=[[[[[" . $buf . "]]]]]\n";
    
for ($x 0$x strlen($buf); $x++) {
        if (
ord($buf[$x]) == 0xff && (ord($buf[$x 1]) & 0xe0) == 0xe0) {
            break;
        }
    }
    
    if (
$x == strlen($buf)) {
#        echo "sync failed\n";

        
if ($attempt 10) {
            echo 
"Giving up after 10 attempts\n";
            exit;
        }
        continue;
    }
    
    break;
    
    echo 
"Found potential...\n";
    
printf("[%02x %02x %02x]\n"ord($buf[$x]), ord($buf[$x 1]), ord($buf[$x 2]));
    
$bitrate = (ord($buf[$x 2]) & 0xf0) >> 8;
    echo 
"Bitrate = $bitrate\n";
    if (
$bitrate != && $bitrate != 0xf)
        break;

}
echo 
substr($buf$x);

# copy data
while (($buf fread($fd4096))) {
    echo 
$buf;
}
fclose($fd);
?>