flash与php通信之amfphp2.1.1使用配置
1.下载amfphp-2.1.1,http://www.silexlabs.org/,解压缩到www\amfphp-2.1.1目录。(因为amfphp和PHP连用有版本不合的问题,所以服务器用的是wampserver2.4 for win7 64位,Apache2.4.4||PHP5.4.12||MySQL5.6.12)2. 在php.ini文件中配置如下:(其实这个步骤可以省略的)
; Windows: "\path1;\path2"
include_path = ".;c:\php\includes;D:\wamp\www\library;D:\wamp\www\amfphp-2.1.1"
3.如果想精简文件结构,只想将amfphp-2.1.1/Amfphp 这个目录上传到服务器上,而且还要可以看到方法及方法返回结果,就需要下面这个插件。 http://pan.baidu.com/share/link?shareid=493366&uk=4077531221把这个路径下的插件下载下来,解压后复制到:amfphp-2.1.1/Amfphp/Plugins 下。 查看:http://localhost/amfphp-2.1.1/Amfphp/ 就出现测试目录了。
4.点击D:\wamp\www\amfphp-2.1.1/BackOffice进入一个提示输入用户名、密码的页面 。打开amfphp-2.1.1/BackOffice/Config.php 大概第54行,将这句话解除注释,写上你想要的用户名和密码:我的用户名:admin 密码:123
public function __construct() {
$this->backOfficeCredentials = array();
//example code for username + password:
$this->backOfficeCredentials['admin'] = '123';
}
现在去:amfphp-2.1.1/Amfphp/Services/ 中就可以尽情的添加文件,添加方法了。
感觉登录比较麻烦么?可以不用登录就访问。但是要修改两个地方。
1、修改amfphp-2.1.1/BackOffice/Config.php 大概第46行:改成:public $requireSignIn = false;
2、修改amfphp-2.1.1/Core/Config.php 将大概100行的:$this->pluginsConfig['AmfphpDiscovery']['restrictAccess'] = false; 注释去掉。这时不用登录就可以随意访问了。
5 .新建一个PHP文档,位置amfphp-2.1.1/Amfphp/Services/HelloWorld.php(UTF-8无BOM编码格式文件)
[*]<?php
[*]class HelloWorld
[*]{
[*]public function sayHelloWorld($value)
[*]{
[*]return " AMF-RPC for PHP".$value;
[*]}
[*]}
[*]?>
复制代码
6.打开flash软件,新建一个AS3文档,在第一帧上写代码:
[*]// 创建一个NetConnection实例
[*]var nc:NetConnection = new NetConnection();
[*]// 设置默认编码
[*]NetConnection.defaultObjectEncoding = ObjectEncoding.AMF3;
[*]// 连接到网关
[*]nc.connect('http://localhost/amfphp-2.1.1/Amfphp/');
[*]// 调用远程方法,并设置回调函数
[*]var responder:Responder = new Responder(onResult, onError);
[*]nc.call('HelloWorld.sayHelloWorld', responder,"真的好用了!");
[*]//nc.call('HelloWorld/sayHelloWorld', responder,"真的好用了!");这样也可以用,二者选其一
[*]// 定义回调函数处理结果和错误
[*]function onResult(re:Object):void {
[*]trace(re);
[*]}
[*]function onError(err:Object):void {
[*]for (var i:String in err) {
[*]trace(err);
[*]}
[*]}
复制代码
Ctrl+Enter发布测试,可以看到输入面板中:"AMF-RPC for PHP,真的好用了!"
补充说明:
1.amfphp2.x开始没有gateway.php文件了,取而代之的是index.php。
2.amfphp和PHP连用,特别注意版本不合的问题。amfphp2.x好像只能跟PHP5.4以上的版本连用。amfphp1.9好像只能跟PHP5.3以下的版本连用。
3.另外,amfphp2.x可以识别UTF-8编码的PHP文件,中文不会乱码。也可能因为PHP5.4以后默认就支持UTF-8编码格式。
4.ZendFramework-1.12.3用ANSI编码的PHP文件,传入参数有中文则需要转换iconv("UTF-8", "GB2312", $arg),使用UTF-8编码的PHP文件,传入和输出参数有中文都需要转换iconv("UTF-8", "GB2312", $arg)。
5.ZendFramework-2.2.2不再支持Zend_Amf。
6.总的来说,目前使用amfphp更有优势,因为不用再纠结上传文件的问题了,因为最终项目完毕,只需要把整个amfphp-2.1.1/Amfphp/上传到网站的www目录即可。
页:
[1]