Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中使用Amf ByteArray字符串?_Php_Actionscript 3_Amf_Amfphp - Fatal编程技术网

如何在php中使用Amf ByteArray字符串?

如何在php中使用Amf ByteArray字符串?,php,actionscript-3,amf,amfphp,Php,Actionscript 3,Amf,Amfphp,我有一个我认为是备用的。在字符串上使用urlencode时,我会得到以下数据 %0A%82%03%01%11SaleDate%0DToYear%0DYardId%15BuyNowOnly%0BState%0BModel%0FStockId%11FromYear%11FullText%13Inventory%11Category%09Make%0FOrderBy%1DOrderDirection%0FPageNum%11PageSize%01%01%06%05-1%02%06%01%01%01%0

我有一个我认为是备用的。在字符串上使用
urlencode
时,我会得到以下数据

%0A%82%03%01%11SaleDate%0DToYear%0DYardId%15BuyNowOnly%0BState%0BModel%0FStockId%11FromYear%11FullText%13Inventory%11Category%09Make%0FOrderBy%1DOrderDirection%0FPageNum%11PageSize%01%01%06%05-1%02%06%01%01%01%01%06%0F1024187%06%09Sale%01%01%06%13RunNumber%06%07Asc%04%01%04d
我正在查看php函数unpack,并尝试
unpack('c4char/Xstr/…')
其中X是a,a,h,h来尝试拉出“SaleDate”字符串,但我无法让它工作

可能是完全错误的方法。我需要编写某种自定义解包吗

我甚至不确定我在这里处理的是什么,它是一个flash文件的输出,所以我认为它是一个Amf“ByteArray”,但我不知道如何解析它

寻找一个方向来开始寻找如何操作/解析/重建这样的东西。最终,我希望能够通过一个函数运行它,获得一个关联数组,更改一些值,重新打包,然后以愉快的方式发送它

我想是的,这是信息部分的数据

我想如果有一个“主要”问题,我该如何简单而安全地处理这串数据


感谢您的指导。

有很多AMF反序列化程序都是开源的,为了简单起见,不在这里推出自己的反序列化程序可能很有意义,即使AMF3相当简单

我在github上发现了这个链接,看起来很有希望:

您可能不想滚动整个框架,但可以滚动:


据我所知,这似乎是特定于供应商的专有编码方法。它们使用“字节数组”来允许有效负载具有更大的灵活性。没有一个简单的方法来处理这个问题,而不是完全逆向编译他们的编码和解码算法。

嗨,达斯廷,我相信这只是一个URL编码的字符串,你发送到PHP而不是实际的AMF,但是如果你用谷歌来做AMFPHP,你可能还想考虑使用ZEnter,这是一个PHP框架。(我相信包括AMFPHP)您必须通过谷歌搜索有关设置/配置的详细信息,但一旦设置完成,这将创建一种简单的方法,将对象从PHP对象序列化/反序列化到AS3对象(只需在PHP对象中设置一个_explicitType,对应于AS3对象的完全限定名),实际上,正如我提到的,我“URL编码“它可以显示字节。未编码形式的字节只是空白,因为它们不是真正的字符。是的,我看过Zend_AMF和AmfPHP,如果你查看
AmfPHP_Core_AMF_Types_ByteArray
它们所做的只是保存字符串,我找不到任何东西来处理字符串。我不会将数据发送到”php,这是我在php中拥有的数据,我正试图找出如何创建这个字符串,或者如何安全地操作它。是的,我拥有这个字符串,这是反序列化的结果。反序列化程序返回一个
Amfphp\u Core\u Amf\u数据包
,数据包中有头和消息。消息中有一条消息具有
Amfphp\u Core\u Amf\u类型es_ByteArray
它只有上面的字符串存储在一个变量中。我看不到任何操作函数或进一步的解码。这已经从原始AMF数据包中反序列化了。现在只是想弄清楚如何操作它。嗯,你有没有再次尝试反序列化ByteArray?是的,这看起来绝对像AMF3数据包,bytearray将是另一个amf3数据包。不过我确实看到了你的问题,所有这些反序列化程序都有所有这些额外的代码来处理类引用之类的,你只需要一个简单的对象。再看看,这必须存在一些地方,抱歉延迟,东海岸风暴造成的断电。无论如何,是的,我尝试过dese再次对其进行RIA分析,但它与AMF数据包的格式不同。它看起来有些不同。我认为它是一个自定义的包/解包,但我没有找到它。是的,你可能是对的。实际上,它看起来可能类似于CSV,带有时髦的分隔符(它们看起来像字段标识符,但我看不到常见情况)看起来不像映射到amf3标识符。