2010-04-13 1 views
2

Мой флэш-код:Decode AMF3 объекта с помощью PHP

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 из флэш-памяти в PHP и восстановить его. Я использую расширение AMFEXT, но не могу заставить его работать. Есть идеи?

+1

* (sidenote) * Официально поддерживаемая библиотека Zend_AMF http://framework.zend.com/manual/en/zend.amf.introduction.html – Gordon

+0

Учитывая производительность amfext, я хотел бы изучить этот параметр =) – jasondinh

ответ

0

Вы взглянули на AMFPHP: http://www.amfphp.org/

«AMFPHP является свободным открытым исходным кодом реализации PHP в формате Action Message Format (AMF) AMF позволяет для бинарной сериализации Action Script (AS2, AS3) родной. виды и объекты для отправки на стороне сервера услуги AMFPHP оспариваются с реализацией всех АМФА протокола является альтернатива Flex Data Services (AMF3) и Flash Remoting (AMF0)»

+0

Да, я знаю AMFPHP, но мне не нужна дистанционная функция. Мне просто нужен способ кодирования/декодирования данных AMF3 в PHP. – jasondinh

1

Я написал простой сериализатор AMF3/Deserialize в PHP для моего проект FlashMOG: here

Это потребует некоторой адаптации.

-1

просто взгляните на проект AMFPHP, я использовал его в проекте чата, и он очень прост в использовании и эффективен.