writeArray() public method

public writeArray ( array $array )
$array array
Esempio n. 1
0
 private function encode($name, array $args, stdClass $context)
 {
     $stream = new BytesIO(Tags::TagCall);
     $writer = new Writer($stream, $context->simple);
     $writer->writeString($name);
     if (count($args) > 0 || $context->byref) {
         $writer->reset();
         $writer->writeArray($args);
         if ($context->byref) {
             $writer->writeBoolean(true);
         }
     }
     $stream->write(Tags::TagEnd);
     $request = $stream->toString();
     $stream->close();
     return $request;
 }
Esempio n. 2
0
 private function doOutput($name, &$args, $byref, $simple, $context)
 {
     if ($simple === null) {
         $simple = $this->simple;
     }
     $stream = new BytesIO(Tags::TagCall);
     $writer = new Writer($stream, $simple);
     $writer->writeString($name);
     if (count($args) > 0 || $byref) {
         $writer->reset();
         $writer->writeArray($args);
         if ($byref) {
             $writer->writeBoolean(true);
         }
     }
     $stream->write(Tags::TagEnd);
     $request = $stream->toString();
     $count = count($this->filters);
     for ($i = 0; $i < $count; $i++) {
         $request = $this->filters[$i]->outputFilter($request, $context);
     }
     $stream->close();
     return $request;
 }
Esempio n. 3
0
 /**
  * Write PHP array, as table. Input array format: keys are strings,
  * values are (type,value) tuples.
  *
  * @param $d
  *
  * @return Writer
  */
 public function writeTable($d)
 {
     $this->flushBits();
     $table_data = new Writer();
     foreach ($d as $k => $va) {
         list($ftype, $v) = $va;
         $table_data->writeShortStr($k);
         if ($ftype == 'S') {
             $table_data->write('S');
             $table_data->writeLongStr($v);
         } else {
             if ($ftype == 'I') {
                 $table_data->write('I');
                 $table_data->_writeSignedLong($v);
             } else {
                 if ($ftype == 'D') {
                     // 'D' type values are passed Decimal instances.
                     $table_data->write('D');
                     $table_data->writeOctet($v->e);
                     $table_data->_writeSignedLong($v->n);
                 } else {
                     if ($ftype == 'T') {
                         $table_data->write('T');
                         $table_data->writeTimestamp($v);
                     } else {
                         if ($ftype == 'F') {
                             $table_data->write('F');
                             $table_data->writeTable($v);
                         } else {
                             if ($ftype = 'A') {
                                 $table_data->write('A');
                                 $table_data->writeArray($v);
                             }
                         }
                     }
                 }
             }
         }
     }
     $table_data = $table_data->getvalue();
     $this->writeLong(strlen($table_data));
     $this->write($table_data);
     return $this;
 }
Esempio n. 4
0
 protected function doFunctionList($context)
 {
     $stream = new BytesIO();
     $writer = new Writer($stream, true);
     $stream->write(Tags::TagFunctions);
     $writer->writeArray($this->names);
     $stream->write(Tags::TagEnd);
     $data = $stream->toString();
     $stream->close();
     return $this->outputFilter($data, $context);
 }