TrainReq
02-24-2008, 05:02 AM
I am getting the following error:
"Parse error: syntax error, unexpected '[', expecting T_PAAMAYIM_NEKUDOTAYIM in /home/***/public_html/p.php on line 8" , Ihave never got that error, it doesnt even look like it is in english.
Here is my hole PHP code:
<?
set_time_limit(10 * 60); //this could take a while, allowing 10 minutes. just added recently see UPDATE at the top of post
$bytes_to_send = 480000 * 130; //stream about about 2 hours of music
//if safari is only asking for a portion of the "mp3"
if (isset(http_get_request_headers['Range'])) {
$exploded_range = explode('=', $http_get_request_headers['Range']);
$limits = explode('-', $exploded_range[1]);
$length = ($limits[1] - $limits[0]) + 1; //the content length
$content_range = 'bytes ' . $limits[0] . '-' . $limits[1]; //the content range
//send fake HTTP headers to safari, telling it that we're sending only the portion of the "mp3" it asked for
header('HTTP/1.1 206 Partial Content');
header('Accept-Ranges: bytes');
header('Content-Length: ' . $length);
header('Content-Range: ' . $content_range . '/' . $bytes_to_send);
header('Content-type: audio/mpeg');
s
//open the stream to the shoutcast server, set as resource $fp
$fp = fsockopen("www.habbohut.com", "8677", $errno, $errstr, 30) or die("Unable to connect to server!");
//HTTP commands that will initiate the shoutcast server sending stream data
$buf = "GET / HTTP/1.0\r\nIcy-MetaData:0\r\n\r\n";
//send HTTP commands in string $buf to stream $fp
fwrite($fp, $buf);
//get next line from stream
$buf = fgets($fp, 1024);
//get next few lines and discard them, this is only
//shoutcast data that would sound like noise if iphone played them
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
//break if EOF
if ($buf == "\r\n") {
break;
}
$bytes_sent = 0;
//while pointer is not at EOF, and not too many bytes are sent...
while (!feof($fp) AND ($bytes_sent < $length)) {
//read 1 byte of stream
$buf = fread($fp, 1);
//output byte to iphone;
echo $buf;
$bytes_sent++;
}
fclose($fp);
exit();
}
//else, it is the initial request. safari is asking for the whole "mp3", and seeing how big it is ($bytes_to_send)
else {
header('Accept-Ranges: bytes');
header('Content-Length: ' . $bytes_to_send);
header('Content-type: audio/mpeg');
echo 'blah';
exit();
}
exit();
?>
Line 8 is if (isset(http_get_request_headers['Range']))
"Parse error: syntax error, unexpected '[', expecting T_PAAMAYIM_NEKUDOTAYIM in /home/***/public_html/p.php on line 8" , Ihave never got that error, it doesnt even look like it is in english.
Here is my hole PHP code:
<?
set_time_limit(10 * 60); //this could take a while, allowing 10 minutes. just added recently see UPDATE at the top of post
$bytes_to_send = 480000 * 130; //stream about about 2 hours of music
//if safari is only asking for a portion of the "mp3"
if (isset(http_get_request_headers['Range'])) {
$exploded_range = explode('=', $http_get_request_headers['Range']);
$limits = explode('-', $exploded_range[1]);
$length = ($limits[1] - $limits[0]) + 1; //the content length
$content_range = 'bytes ' . $limits[0] . '-' . $limits[1]; //the content range
//send fake HTTP headers to safari, telling it that we're sending only the portion of the "mp3" it asked for
header('HTTP/1.1 206 Partial Content');
header('Accept-Ranges: bytes');
header('Content-Length: ' . $length);
header('Content-Range: ' . $content_range . '/' . $bytes_to_send);
header('Content-type: audio/mpeg');
s
//open the stream to the shoutcast server, set as resource $fp
$fp = fsockopen("www.habbohut.com", "8677", $errno, $errstr, 30) or die("Unable to connect to server!");
//HTTP commands that will initiate the shoutcast server sending stream data
$buf = "GET / HTTP/1.0\r\nIcy-MetaData:0\r\n\r\n";
//send HTTP commands in string $buf to stream $fp
fwrite($fp, $buf);
//get next line from stream
$buf = fgets($fp, 1024);
//get next few lines and discard them, this is only
//shoutcast data that would sound like noise if iphone played them
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
$buf = fgets($fp, 1024);
//break if EOF
if ($buf == "\r\n") {
break;
}
$bytes_sent = 0;
//while pointer is not at EOF, and not too many bytes are sent...
while (!feof($fp) AND ($bytes_sent < $length)) {
//read 1 byte of stream
$buf = fread($fp, 1);
//output byte to iphone;
echo $buf;
$bytes_sent++;
}
fclose($fp);
exit();
}
//else, it is the initial request. safari is asking for the whole "mp3", and seeing how big it is ($bytes_to_send)
else {
header('Accept-Ranges: bytes');
header('Content-Length: ' . $bytes_to_send);
header('Content-type: audio/mpeg');
echo 'blah';
exit();
}
exit();
?>
Line 8 is if (isset(http_get_request_headers['Range']))