• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP msgpack_unpack函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中msgpack_unpack函数的典型用法代码示例。如果您正苦于以下问题:PHP msgpack_unpack函数的具体用法?PHP msgpack_unpack怎么用?PHP msgpack_unpack使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了msgpack_unpack函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: decode

 /**
  * Decodes given value into the on-memory instance in accordance with
  * the predefined codec.
  *
  * @param  mixed $value value to be decoded.
  * @return mixed instance which is decoded.
  */
 public function decode($value)
 {
     if (function_exists('msgpack_unpack')) {
         return msgpack_unpack($value);
     }
     return unserialize($value);
 }
开发者ID:shingoOKAWA,项目名称:yacache-l5-php,代码行数:14,代码来源:MessagePack.php


示例2: packData

 public function packData($var, $bool = true, $option = array())
 {
     $option += array('packer' => $this->option['packer']);
     switch ($option['packer']) {
         case BoxConstants::ENCODER_JSON:
             if ($bool == true) {
                 return json_encode($var);
             } else {
                 return json_decode($var, true);
             }
             break;
         case BoxConstants::ENCODER_MSGPACK:
             if ($bool == true) {
                 return msgpack_pack($var);
             } else {
                 return msgpack_unpack($var);
             }
             break;
         case BoxConstants::ENCODER_SERIALIZE:
         default:
             if ($bool == true) {
                 return serialize($var);
             } else {
                 return unserialize($var);
             }
             break;
     }
 }
开发者ID:nickfan,项目名称:appbox,代码行数:28,代码来源:BoxDictionary.php


示例3: parse

 /**
  * Parse Payload Data
  *
  * @param string $payload
  *
  * @throws ParserException
  *
  * @return array
  */
 public function parse($payload)
 {
     if (function_exists('msgpack_unpack')) {
         if ($payload) {
             $prevHandler = set_error_handler(function ($errno, $errstr, $errfile, $errline, $errcontext) {
                 throw new \Exception($errstr);
                 // @codeCoverageIgnore
             });
             try {
                 $msg = msgpack_unpack(trim($payload));
                 if (!$msg) {
                     throw new \Exception('Unknown error');
                     // @codeCoverageIgnore
                 }
             } catch (\Exception $e) {
                 set_error_handler($prevHandler);
                 throw new ParserException('Failed To Parse MSGPack - ' . $e->getMessage());
             }
             set_error_handler($prevHandler);
             return $msg;
         }
         return [];
     }
     throw new ParserException('Failed To Parse MSGPack - Supporting Library Not Available');
     // @codeCoverageIgnore
 }
开发者ID:nathanmac,项目名称:parser,代码行数:35,代码来源:MSGPack.php


示例4: decode

 /**
  * @param string $encoded
  * @return mixed
  * @throws \Exception
  */
 public function decode($encoded)
 {
     if (function_exists('msgpack_unpack')) {
         return msgpack_unpack(substr($encoded, 1));
     }
     throw new \Exception('msgpack not installed');
 }
开发者ID:groupcash,项目名称:php,代码行数:12,代码来源:MsgPackTranscoder.php


示例5: unserialize

 public function unserialize($string)
 {
     if (!function_exists('msgpack_unpack')) {
         throw new \Exception('msgpack extension must be installed!');
     }
     return msgpack_unpack($string);
 }
开发者ID:mmolle-nelo,项目名称:flow-resttools,代码行数:7,代码来源:MsgpackSerializer.php


示例6: get

 /**
  * Function pretreatment
  * @param $_get
  * @param $_post
  * @param $_version
  * @param $_scope
  * @param $_interface
  * @return array
  */
 public static function get()
 {
     $_tmp_request = [];
     //MAKE URL REQUEST
     //MAKE HTTP HEADER REQUEST
     $_tmp_header_request = [];
     $_tmp_http_accept = explode(';', str_replace(' ', '', strtolower($_SERVER['HTTP_ACCEPT'])));
     $_tmp_request['content-type'] = $_tmp_http_accept[0] == TYPE_JSON || $_tmp_http_accept[0] == TYPE_MSGPACK ? $_tmp_http_accept[0] : TYPE_NULL;
     if (isset($_tmp_http_accept[1]) && !empty($_tmp_http_accept[1])) {
         $_tmp = explode('=', $_tmp_http_accept[1]);
         isset($_tmp[1]) && !empty($_tmp[1]) ? $_tmp_request['version'] = $_tmp[1] : FALSE;
     }
     //@todo Ranges
     //MAKE CONTENT REQUEST
     $_tmp_request['content'] = file_get_contents('php://input');
     switch ($_tmp_request['content-type']) {
         case TYPE_MSGPACK:
             $_tmp_request['content'] = msgpack_unpack($_tmp_request['content']);
             break;
         case TYPE_JSON:
             $_tmp_request['content'] = json_decode($_tmp_request['content']);
             break;
         case TYPE_NULL:
         default:
             $_tmp_request['content'] = NULL;
             break;
     }
     return $_tmp_request;
 }
开发者ID:randy-ran,项目名称:open-api-for-vopi,代码行数:38,代码来源:Request.php


示例7: handleRequest

 public function handleRequest()
 {
     $args = func_get_args();
     $data = $args[0];
     //TODO 简单实用 msgpack
     //FIXME 数据传输协议依赖swoole 底层组包功能,此处不在检查数据完整
     $datastr = substr($data, 4);
     $params = (object) msgpack_unpack($datastr);
     if (empty($params->op)) {
         $params->op = 'main.main';
     }
     //TODO 这里的处理应该完善点
     list($ctrl, $method) = explode('.', $params->op);
     $className = $this->getCtrlNamespace() . '\\' . ucfirst($ctrl) . 'Ctrl';
     $ctrl = new $className();
     $ctrl->setParams($params);
     //发送msgpack编码数据,头部为数据长度
     $result = $ctrl->{$method}();
     if (Ping::$server->debug) {
         echo "swoole handle request:\n";
         echo "\tctrl: {$ctrl} method: {$method}\n";
         echo "\tparams:\n\t\t" . json_encode($params) . "\n";
         echo "\tresponse:\n\t\t" . json_encode($result) . "\n";
         echo "\n\n";
     }
     $rawResult = msgpack_pack($result);
     $rawResult = pack('N1', strlen($rawResult));
     return $rawResult;
 }
开发者ID:imdaqian,项目名称:PingFramework,代码行数:29,代码来源:Server.php


示例8: unpack

 /**
  * 解包工具
  *
  * @param string $raw
  *
  * @return mixed
  */
 public static function unpack($raw, $prefix = true)
 {
     if ($prefix) {
         return msgpack_unpack(substr($raw, 4));
     } else {
         return msgpack_unpack($raw);
     }
 }
开发者ID:lanma121,项目名称:superPrize,代码行数:15,代码来源:Pack.php


示例9: unserialize

 /**
  * Unserializes the data
  *
  * @param array $data data to be unserialized
  *
  * @return array unserialized message
  */
 public function unserialize($data)
 {
     $mssg = msgpack_unpack($data);
     //lets just make UUIDs readable incase we need to debug
     $mssg[0] = Helper::binToUuid($mssg[0]);
     $mssg[1] = Helper::binToUuid($mssg[1]);
     return $mssg;
 }
开发者ID:chekun,项目名称:gremlin-php,代码行数:15,代码来源:Msgpack.php


示例10: onData

 public function onData($data, Stream $conn)
 {
     $message = msgpack_unpack($data);
     printf("Request method: %s\n", $message['method']);
     printf("Request params: %s\n", print_r($message['params'], true));
     $result = $this->handler->process($message);
     $conn->write($result);
     $conn->end();
 }
开发者ID:mcocaro,项目名称:trevor,代码行数:9,代码来源:Server.php


示例11: testSend

 public function testSend()
 {
     $io = m::mock(Io::class);
     $io->shouldReceive('write')->andReturnUsing(function ($data) {
         self::assertEquals(array(1, 2, 3), msgpack_unpack($data));
     });
     $messenger = new MsgpackMessenger($io);
     $messenger->send(array(1, 2, 3));
 }
开发者ID:lvht,项目名称:msgpack-rpc,代码行数:9,代码来源:MsgpackMessengerTest.php


示例12: unpack

 /**
  */
 public function unpack($data)
 {
     ini_set('track_errors', 1);
     $out = @msgpack_unpack($data);
     ini_restore('track_errors');
     if (!isset($php_errormsg)) {
         return $out;
     }
     throw new Horde_Pack_Exception('Error when unpacking Msgpack data.');
 }
开发者ID:horde,项目名称:horde,代码行数:12,代码来源:Msgpack.php


示例13: parse

 public function parse($rawBody, $contentType)
 {
     if (!extension_loaded('msgpack')) {
         throw new BadRequestHttpException('Msgpack is not supported in this app server');
     }
     $unpacked = @msgpack_unpack($rawBody);
     if ($unpacked === null && $rawBody !== chr(0xc0)) {
         throw new BadRequestHttpException('Invalid MsgPack data in request body');
     }
     return $unpacked;
 }
开发者ID:Bochozkar,项目名称:stat.ink,代码行数:11,代码来源:MessagePackParser.php


示例14: test

function test($type, $variable, $test = null)
{
    $serialized = msgpack_pack($variable);
    $unserialized = msgpack_unpack($serialized);
    var_dump($unserialized);
    if (!is_bool($test)) {
        echo $unserialized === $variable ? 'OK' : 'ERROR', PHP_EOL;
    } else {
        echo $test || $unserialized == $variable ? 'OK' : 'ERROR', PHP_EOL;
    }
}
开发者ID:chenyongze,项目名称:msgpack-hhvm,代码行数:11,代码来源:080.php


示例15: test

function test($type, $variable, $object, $result = null)
{
    $serialized = msgpack_pack($variable);
    $unserialized = msgpack_unpack($serialized, $object);
    var_dump($unserialized);
    if ($result) {
        echo $unserialized == $result ? 'OK' : 'ERROR', PHP_EOL;
    } else {
        echo 'SKIP', PHP_EOL;
    }
}
开发者ID:chenyongze,项目名称:msgpack-hhvm,代码行数:11,代码来源:092b.php


示例16: onReceive

 public function onReceive($server, $fd, $fromId, $data)
 {
     /**
      * @var \Swoole\Server $server
      */
     $tmp = @msgpack_unpack($data);
     if ($tmp && is_object($tmp)) {
         $data = $tmp;
         unset($tmp);
         if ($data instanceof \stdClass) {
             if ($data->bind) {
                 # 绑定进程ID
                 $server->bind($fd, $data->id);
                 return;
             }
             if ($key = \MyQEE\Server\Register\Client::$host->key) {
                 # 需要解密
                 $data = \MyQEE\Server\RPC\Server::decryption($data, $key);
                 # 解密失败
                 if (!$data) {
                     return;
                 }
             }
             $eof = \MyQEE\Server\RPC\Server::$EOF;
             switch ($data->type) {
                 case 'task':
                 case 'taskWait':
                     $rs = Server::$workerTask->onTask($server, $data->id, $data->wid, $data->data, $data->sid);
                     if ($rs !== null || $data->type === 'taskWait') {
                         # 执行 Finish
                         $rsData = new \stdClass();
                         $rsData->id = $data->id;
                         $rsData->data = $rs;
                         $rsData->wname = $data->wname;
                         if ($key) {
                             # 加密数据
                             $rsData = \MyQEE\Server\RPC\Server::encrypt($rsData, $key) . $eof;
                         } else {
                             # 格式化数据
                             $rsData = msgpack_pack($rsData) . $eof;
                         }
                         $server->send($fd, $rsData, $fromId);
                     }
                     break;
             }
         }
     } else {
         Server::$instance->warn("task server get error msgpack data length: " . strlen($data));
         Server::$instance->debug($data);
         $this->server->close($fd);
     }
 }
开发者ID:myqee,项目名称:server,代码行数:52,代码来源:TaskServer.php


示例17: messageUnserialize

 /**
  * 反序列化消息
  *
  * @param string $encodedMsg    序列化的消息内容
  * @return Message | null
  */
 public static function messageUnserialize($serializedMsg)
 {
     $msgArr = msgpack_unpack($serializedMsg);
     if (!isset($msgArr['__lqcmc'])) {
         throw new \Exception('Bad message format');
     }
     if ($msgArr['__lqcmc'] == Message::class) {
         $msg = new Message();
         unset($msgArr['__lqcmc']);
         $msg->initByArray($msgArr);
         return $msg;
     }
 }
开发者ID:lindowx,项目名称:light-queue-client,代码行数:19,代码来源:Queue.php


示例18: test

function test($type, $var)
{
    echo "================\n" . $type . "\n";
    $e = msgpack_pack($var);
    $d = msgpack_unpack($e);
    echo "\t" . bin2hex($e) . "\t" . $e . "\n\t";
    echo str_replace("\n", "\n\t", var_export($d, true)) . "\n";
    if ($var === $d) {
        echo "PASS\n";
    } else {
        echo "FAIL\n";
    }
}
开发者ID:client9,项目名称:msgpack-php,代码行数:13,代码来源:test.php


示例19: parse

 /**
  * Parse Payload Data
  *
  * @param string $payload
  *
  * @return array
  *
  * @throws ParserException
  */
 public function parse($payload)
 {
     if (function_exists('msgpack_unpack')) {
         if ($payload) {
             $msg = msgpack_unpack(trim($payload));
             if (!$msg) {
                 throw new ParserException('Failed To Parse MSGPack');
             }
             return $msg;
         }
         return array();
     }
     throw new ParserException('Failed To Parse MSGPack - Supporting Library Not Available');
 }
开发者ID:cholung,项目名称:Parser,代码行数:23,代码来源:MSGPack.php


示例20: decodeVal

 protected function decodeVal($str)
 {
     switch ($this->defaultOption['encode']) {
         case 'json':
             return json_decode($str, true);
             break;
         case 'msgpack':
             return msgpack_unpack($str);
             break;
         case 'serialize':
         default:
             return unserialize($str);
             break;
     }
 }
开发者ID:nickfan,项目名称:appbox,代码行数:15,代码来源:BoxBaseUsercache.php



注:本文中的msgpack_unpack函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP msgpack_unserialize函数代码示例发布时间:2022-05-15
下一篇:
PHP msgpack_serialize函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap