<?php
class BinaryWriter
{
private $dataString = '';
public function writeInt32($number)
{
$intValue = intval($number);
for ($i = 0; $i < 4; $i++)
{
$byteValue = ($intValue >> ($i * 0x10)) & 0xFF;
$this->dataString .= chr($byteValue);
}
}
public function writeInt16($number)
{
$intValue = intval($number);
for ($i = 0; $i < 2; $i++)
{
$byteValue = ($intValue >> ($i * 0x10)) & 0xFF;
$this->dataString .= chr($byteValue);
}
}
public function writeByte($number)
{
$intValue = intval($number);
$this->dataString .= chr($intValue);
}
public function writeBString($string)
{
$length = strlen($string);
$this->dataString .= chr($length);
$this->dataString .= $string;
}
public function writeZString($string)
{
$this->dataString .= $string;
$this->dataString .= chr(0);
}
public function flush()
{
header('Content-type: application/octet-stream');
echo $this->dataString;
$this->dataString = '';
}
}
?>