zoukankan      html  css  js  c++  java
  • amfphp传递负数的bug

    There is a weird bug in AMFPHP regarding sending negative integers. If you try and send a number such as -87, it shows up as 4294967209 in php. I did some digging and found on the amfphp forums that it has to do with amfphp's readAmf3Int() method in AMFDeserialzer.php. Here is the updated function that was posted on the forum:

          function readAmf3Int()

              {
                  $res = 0;
                  $int = $this->readByte();
                
                  if($int <128) {
                      return $int;
                  } else {
                      $int = ($int & 0x7f) <<7;
                     
                      $tmp = $this->readByte();
                     
                      if($tmp <128) {
                          $int |= $tmp;
                      }else{
                          $int = ($int | ($tmp & 0x7f)) <<7;
                          $tmp = $this->readByte();
                          if($tmp <128){
                              $int |= $tmp;
                          }else{
                              $int = ($int | ($tmp & 0x7f)) <<8;
                              $tmp = $this->readByte();
                              $int |= $tmp;
                          }
                      }
                  }
           
                  $mask = 1<<28;
                  $res = -($int & $mask) | $int;
           
                  return $res;
              }
  • 相关阅读:
    将字典或者数组转换成JSON数据或者字符串
    [翻译] VICMAImageView
    [翻译] TransitionKit
    [翻译] UIGlossyButton
    [翻译] MMMaterialDesignSpinner
    [翻译] AFSoundManager
    实现UIView的无限旋转动画(非CALayer动画)
    【转】Winform 去掉 最大化 最小化 关闭按钮(不是关闭按钮变灰)终极解决办法
    【转】C# winform 安装程序打包(自定义操作)
    【转】C#安装包(自动卸载低版本)
  • 原文地址:https://www.cnblogs.com/rooney/p/2314808.html
Copyright © 2011-2022 走看看