function sava($d, $fp) { $pk = new PackageIn(); $r = $d->DataList; $count = count($r); $lable = $d->Tag; $pk->writeInt($count); for ($i = 0; $i < $count; $i++) { foreach ($r[$i] as $key => $value) { switch ($lable[$key]) { case "int": $pk->writeInt($value); break; case "string": $pk->writeUTF($value); break; case "byte": $pk->writeByte($value); break; case "short": $pk->writeShort($value); break; } } } mypack($fp, $pk->data->format, $pk->data->params); }
function savaShopDetail($d, $fp, $type) { $pk = new PackageIn(); $r = $d->DataList; $count = count($r); $lable = $d->Tag; $pk->writeByte($count); for ($i = 0; $i < $count; $i++) { foreach ($r[$i] as $key => $value) { switch ($lable[$key]) { case "int": $pk->writeInt($value); break; case "string": $pk->writeUTF($value); break; case "byte": $pk->writeByte($value); break; case "short": $pk->writeShort($value); break; } } $d1 = Provider::getInstance()->getShopCategoryList($r[$i][0]); $r1 = $d1->DataList; $count1 = count($r1); $lable1 = $d1->Tag; $pk->writeByte($count1); for ($j = 0; $j < $count1; $j++) { $pk->writeUTF($r1[$j][1]); $d2 = Provider::getInstance()->getShopItemsList($r1[$j][0], $r[$i][0]); $r2 = $d2->DataList; $count2 = count($r2); $lable2 = $d2->Tag; $pk->writeShort($count2); for ($j1 = 0; $j1 < $count2; $j1++) { foreach ($r2[$j1] as $key1 => $value1) { switch ($lable2[$key1]) { case "int": $pk->writeInt($value1); break; case "string": $pk->writeUTF($value1); break; case "byte": $pk->writeByte($value1); break; case "short": $pk->writeShort($value1); break; } } } } } $str = pack("C", $type); //type fwrite($fp, $str); $str = pack("N", $pk->len); //len fwrite($fp, $str); mypack($fp, $pk->data->format, $pk->data->params); }