近期在升级PHP5.4版本号,AMFPHP出现了兼容性问题。解决过程记录例如以下。
1、ereg类相关函数改动为preg相关函数。
2、通过错误日志输出的提示。将全部以静态方式调用的类函数加入statickeyword。
3、改动PHP配置文件。给data.timezone加入默认时区。
尽量使错误输出到日志,通常是些不兼容性问题。假设错误日志没输出能够使用Charles Proxy类的软件来查看HTTP传输的内容。
NetConnection.Call.BadVersion问题的产生主要是传输到Client的字节码有问题。原因一般有两个:
1、产生了错误。这个能够在PHP日志查看或通过Charles工具,Chrome自带调试等来查看HTTP内容是否显示了错误信息。
2、有不明的输出。
假设上面没问题。检查一下与AMFPHP相关的每一个文件是否有输出。一个特别的样例是UTF-8编码文件带有BOM标识,这个不会产生错误。可是会影响AMFPHP CLient端解码。