【问题标题】:Decode amf3 object using PHP使用 PHP 解码 amf3 对象
【发布时间】:2025-12-14 19:40:05
【问题描述】:

我的闪码:

var request=new URLRequest('http://localhost/test.php');
request.method = URLRequestMethod.POST;
var data = new URLVariables();
var bytes:ByteArray = new ByteArray();
bytes.objectEncoding = ObjectEncoding.AMF3;
//write an object into the bytearray
bytes.writeObject( 
      { myString:"Hello World"} 
);
data.data = bytes;
request.data = data;

var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.addEventListener(Event.COMPLETE, onCompleteHandler);
urlLoader.load(request);

function onCompleteHandler(evt:Event):void {
 trace(evt.target.data);
}

PHP 代码:

define("AMF_AMF3",1); 
$data = $_POST['data'];
echo amf_decode($data, AMF_AMF3);

基本上我需要将一个 AMF3 对象从 Flash 发送到 PHP 并反序列化它。我正在使用 AMFEXT 扩展,但无法让它工作。有什么想法吗?

【问题讨论】:

标签: php flash actionscript-3 amf


【解决方案1】:

【讨论】:

    【解决方案2】:

    我为我的项目 FlashMOG 用 PHP 编写了一个简单的 AMF3 序列化器/反序列化器: here

    这需要一点适应。

    【讨论】:

      【解决方案3】:

      你看过 AMFPHP:http://www.amfphp.org/

      “AMFPHP 是 Action Message Format (AMF) 的免费开源 PHP 实现。AMF 允许将 Action Script(AS2、AS3)本机类型和对象的二进制序列化发送到服务器端服务。AMFPHP 面临挑战实现整个 AMF 协议以替代 Flex Data Services (AMF3) 和 Flash Remoting (AMF0)"

      【讨论】:

      • 是的,我知道 AMFPHP,但我不需要它的远程功能。我只需要一种在 PHP 中编码/解码 AMF3 数据的方法..
      【解决方案4】:

      看一下AMFPHP项目,我在一个聊天项目中使用过,使用起来真的很简单,效率很高。

      【讨论】: