配置支持Amfphp1.9的Web应用

 更新时间:2016年11月25日 16:07  点击:1496

新功能:
 1、AMF3支持:包含了RemoteObject,你可以尽情用在Flex2上。
 2、JSON(Javascrīpt Object Notation,轻量级的数据交换格式)支持:附加到gateway.php,现在json.php将使你更好的在Flash中使用自己的JSON服务。这里有两个例子:MochiKit 和 Spry。XML-RPC 同样被支持。
 3、一个新的浏览器。值得一提的是例程MochiTest同样是可以使用在JSON模式的例程。所以你可以自己证实它的确可以同时运行在AMP和JSON模式下。
 4、$this->methodTable的最后。 从现在开始是可以被忽略的。所有的Methods都可以间接的使用默认值。

安装Amfphp 1.9 beta 2

目前amfphp1.9的最新版是amfphp1.9 beta2,可以到 http://www.5etdemi.com/uploads/amfphp-1.9.beta.20070126.zip下载。将其解压缩到硬盘,拷贝到apache的web目录下。键入http://localhost:8080/amfphp/gateway.php,会出现amfphp网关的一个说明文件。AMFPHP基本的安装已经完成。

四、安装AMF扩展

最新版的AMFPHP加入了一个AMF扩展:它是用C写了一个AMF协议的解码和编码器,执行效率大大提升。尤其是大的数据源的时候,用php编码可能会超时而不能完成的操作,用AMF扩展就可以完成。 安装比较简易:

1. 下载

到http://www.teslacore.it/projects/amfext/amfext-0.8.7a-bin.zip下载,将php_amf.dll解压缩到PHP根路径下ext中。

2. 配置

打开php.ini,加上下面这一行:extension=php_amf.dll

我们不需要对AMFPHP 本身做任何修改或者配置。系统会自动监测那个扩展是否存在,存在就会自动应用,否则就会使用PHP的解码和编码。

好了,将其web共享,别名为flashservices。支持Amfphp的Web应用就配置好了。我们只需要将写好远程服务类放到Amfphp根目录services中就可以在Flash和Flex中访问了。

五、本地化设置

因为PHP默认的编码语言是ISO-8859-1,要使前面配置的Web应用支持简体中文,最好的方法是打开Amfphp根路径下的gateway.php,将 $gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");修改为$gateway->setCharsetHandler("iconv", "GBK", "GBK");即可。要解决MySQL中的中文乱码问题,请用mysql_query("set names ''gbk''");

 

今天终于将PHP配置好了,以前也配置过,可以用但是总会有一点毛病什么的,现在完全的解决了。请注意是开发环境不是运行环境!开发环境和运行环境有很大区别的,不能说谁更严格,只能说两者的要求不同,开发环境注重开发效率,怎么方便怎么来,安全性一般,而运行环境注重安全性,注重运行效率,怎么快怎么来,怎么安全怎么来。
下面介绍下方法:Apache+php+mysql+EMS SQL manager+Zend Studio
这样做的目的只有一个:尽量的提高效率,减少简单重复的事情发生。
总体上如果不看Zend studio那么剩下的就是一个完整的PHP运行环境,为了方便我们在zend studio中最好将PHP文件或者你的站点保存到你的apache的htdocs目录下
然后按照Apache+php+mysql在windows下的安装与配置图解(最新版) 配置PHP的基本环境
这个是个Zend Studio的截图,相信看很明白,主要说的是右侧的output区域,这个区域可以看出来你的PHP页的运行效果,基本和在WEB服务器运行一样,如果运行后没有错,这个区域就会正常显示,然后看代码区的上面一点,点Browser,然后看到有点象浏览器,没错就是浏览器,假设你已经配置好了Apache+PHP+mysql+EMS Sql Manager,然后输入localhost/test.php,这样是不是很方便?
最后注意一点,安装apache时,如果有IIS的话,可能你的80端口已经被占用,使用8080端口好了,如果没有IIS,也没有其他WEB服务器,但是就是显示错误,那么很可能是迅雷占用了你的80端口,这个软件使用的频率应该说比IIS要多很多,一定注意,实在发现不了是什么软件可以用一些查看端口占用情况的软件,百度里很多的。 


<?php
for ($i=10; $i>0; $i--)
{
    echo $i;
    flush();
    sleep(1);
}
?>

按照php手册里的说法

    该函数将当前为止程序的所有输出发送到用户的浏览器。

上面的这段代码,应该隔一秒钟输出一次$i。但是实际中却不一定是这样。有可能是等了10秒钟后,所有的输出同时呈现出来。

好,我们来改一下这段代码,改成

<?php
ob_end_clean();//修改部分
for ($i=10; $i>0; $i--)
{
    echo $i;
    flush();
    sleep(1);
}
?>

嘿,加了这一句ob_end_clean();,居然就OK了。实际上,我们把ob_end_clean()换成ob_end_flush()也一样OK。

我再来改一改。

<?php
for ($i=10; $i>0; $i--)
{
    echo $i;
    ob_flush();//修改部分
    flush();
    sleep(1);
}
?>

运行一下,是不是发现$i也隔一秒输出一次了?这是为什么呢?
别急,我们来看看php.ini。

打开php.ini,搜索output_buffering,我们会看到类似这样的设置 output_buffering = 4096。正如它的名字output_buffering一样,这个设置的作用就是把输出缓冲一下,缓冲大小为4096bytes.

在我们的第一段代码里,之所以没有按预期的输出,正是因为这个output_buffering把那些输出都缓冲了。没达到4096bytes或者脚本结束,输出是不会被发送出去的。

而第二段代码中的ob_end_clean()和ob_end_flush()的作用,就是终止缓冲。这样就不用等到有4096bytes的缓冲之后才被发送出去了。

第三段代码中,用了一句ob_flush(),它的作用就是把缓冲的数据发送出去,但是并不会终止缓冲,所以它必须在每次flush()前使用。

如果不想使用ob_end_clean(),ob_end_flush()和ob_flush(),我们就必须把php.ini里的 output_buffering设得足够小,例如设为0。需要注意的是,如果你打算在脚本中使用ini_set(” output_buffering”,”0″)来设置,那么请停下来吧,这种方法是不行的。因为在脚本一开始的时候,缓冲设置就已经被载入,然后缓冲就开始了。

可能你会问了,既然ob_flush()是把缓冲的数据发送出去,那么为什么还需要用flush()???直接用下面这段代码不行吗??

<?php
for ($i=10; $i>0; $i--)
{
    echo $i;
    ob_flush();
    sleep(1);
}
?>

请注意ob_flush()和flush()的区别。前者是把数据从PHP的缓冲中释放出来,后者是把不在缓冲中的或者说是被释放出来的数据发送到浏览器。所以当缓冲存在的时候,我们必须ob_flush()和flush()同时使用。

那是不是flush()在这里就是不可缺少的呢?不是的,我们还有另外一种方法,使得当有数据输出的时候,马上被发送到浏览器。下面这两段代码就是不需要使用flush()了。(当你把output_buffering设为0的时候,连ob_flush()和ob_end_clean()都不需要了)

<?php
ob_implicit_flush(true);
for ($i=10; $i>0; $i--)
{
    echo $i;
    ob_flush();
    sleep(1);
}

< 相信很多新手在初学PHP的时候和我一样重心放在,PHP程序的开发,html代码,数据库操作,相关开发工具使用等等,往往忽略了学习版本控制软件的使用。为什么今天在新手区提出这个问题,原因就在于,想让广大朋友在使用php作为coder生涯开始的时候的能得到正规化的发展及少走一些弯路,我是走过了,这里分享我的经验,希望大家看过之后能有些心得,少走弯路。

     1.为什么我们要用版本控制

      可以说在一些小公司,或者一些不是特别依赖技术的公司,缺乏技术管理人才,由于自身的局限性,里面的开发人员往往在开发的时候也是具有很大的局限性。加上人力,周期的限制,很多都不采用版本控制,像我之前的公司,大家都是在一台测试服务器上做开发,调试端 在服务器。这样有什么问题?第一,很可能我们同时几个人在修改一个页面而相互不知情,这样后保存的人很可能覆盖掉前者所做的改动,如果之前没有备份,那结 果是可怕的。想避免,你就要等别人改完,这是开发就不能并行操作。第二,当你做了大量的修改,由于需求的变化,我们很有可能要将代码改回之前的样子,假设 只有20行代码,OK,你手工凭记忆改,2000行呢?你记得你改了哪些吗? 更惨点我见过开发完一个项目结果测试服务器被人误删了数据,2个月的辛苦努力白费了。 使用版本控制,我们完全可以很好的解决以上问题。

   2.什么是版本控制

  简单点来说,版本控制就是时间机器,它可以记录你对文件的每次更改,这样,就算你在昏天黑地的改了几个月后老板说不要了,还是按照过去那样,你也不会抓狂 ,简单的恢复版本操作就搞定一切 。具体概念,大家还是查阅相关资料。

  3.为什么使用SVN

  目前的版本控制软件主要有MS 的VSS,开源的CVS和SVN,zendIDE自带CVS,不过CVS有很多局限性,比如它只记录单个文件的版本,不支持文件的删除,添加的版本控制,针对CVS的局限性,SVN就应运而生了,同时SVN可以由apache带动,直接通过http协议在更新仓库文件。对于这样的组合是非常完美的。至于VSS个人觉得很难用,而且效率低下,也不跨平台。所以坚决推荐SVN。通过SVN调试环境是每个开发成员的客户机,每个成员可以通过仓库的更新直接获取其他成员的新文件和改动,对于多人修改了同样的代码可以做出冲突提示,在发生问题时也可以轻松找到是谁改了哪行代码。这样执行并行开发,效率非常高,同时只可以很好的备份代码。

   讲了这么多SVN的好处只是希望各位新手能尽量按照规范的流程做开发,这对于自身的发展很有好处。最后还是祝大家学习愉快。


 

< php中有 bin2hex方法,但没有 hex2bin方法,以下简单实现 hex2bin :



<?php
function hex2bin($data) {
     
$len = strlen($data);
     
return pack("H" . $len, $data); } 
?>  

[!--infotagslink--]

相关文章

  • IntelliJ IDEA2021.1 配置大全(超详细教程)

    这篇文章主要介绍了IntelliJ IDEA2021.1 配置大全(超详细教程),需要的朋友可以参考下...2021-04-18
  • Windows VPN服务器配置图文教程 超详细版

    VPN可以虚拟出一个专用网络,让远处的计算机和你相当于处在同一个局域网中,而中间的数据也可以实现加密传输,用处很大,特别是在一些大公司,分公司处在不同的区域。...2016-01-27
  • Tomcat配置及如何在Eclipse中启动

    这篇文章主要介绍了Tomcat配置及如何在Eclipse中启动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-04
  • Laravel4安装配置的方法

    如果我们需要安培Laravel4的话最php最低要求要在php5.3.7版本并且我们需要把mcrypt与openss这两个扩展开启才可以,具体步骤我们参考下文。 前面我们介绍我了 com...2016-11-25
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • 详解Maven profile配置管理及激活profile的几种方式

    这篇文章主要介绍了详解Maven profile配置管理及激活profile的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-26
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • IDEA如何添加配置文件到classpath中

    这篇文章主要介绍了IDEA如何添加配置文件到classpath中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-19
  • 查找php配置文件php.ini所在路径的二种方法

    通常php.ini的位置在:复制代码 代码如下:/etc目录下或/usr/local/lib目录下。如果你还是找不到php.ini或者找到了php.ini修改后不生效(其实是没找对),请使用如下办法:1.新建php文件,写入如下代码复制代码 代码如下:<?phpe...2014-05-31
  • 部署PHP时的4个配置修改说明

    以下就是部署PHP时的4个配置修改说明,大家一个一个进行学习研究。1、short_open_tag 是什么呢? 决定是否允许使用代码开始标志的缩写形式(<&#63; &#63;> )。如果要和 XML 结合使用PHP,可以禁用此选项以便于嵌入使用<&#63;x...2015-10-21
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • Vue-Router的routes配置详解

    在使用vue-router的项目中,实例化VueRouter是其配置选项routes该选项指定路由与视图的组件的关系或者路由与其他路由的关系,Router配置选项中是其中最重要的配置。本文就详细的介绍一下...2021-10-25
  • 华为畅享20Pro配置怎么样?华为畅享20Pro参数配置分析

    华为畅享20Pro配置怎么样?对于即将上市的华为畅享20 Pro手机,很多的网友们也是相当关注的,大家都想要知道这款华为畅享20 Pro手机的配置到底怎么样,赶紧看看吧...2020-06-29
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • 配置vue全局方法的两种方式实例

    vue项目中有一些方法需要在多个页面调用,但为了避免在每个页面都import进来,可以把方法加到原型上去,这样在每个组件中都能使用了,下面这篇文章主要给大家介绍了关于配置vue全局方法的两种方式,需要的朋友可以参考下...2021-09-13
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • 详解element-ui 表单校验 Rules 配置 常用黑科技

    这篇文章主要介绍了element-ui 表单校验 Rules 配置 常用黑科技,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31