仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1818|回复: 19
打印 上一主题 下一主题

[学习教程] PHP编程:利用ZendEncode编译PHP法式

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:20:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。encode|编译|法式   1、ZendEncode的任务道理

利用PHP的人都晓得,它是一个剧本编程东西,由它写的法式,必需以源码的模式放置在Web办事器上,所以咱们没法回护本人的源代码。并且列位都晓得任何一个剧本法式的履行效力同具有不异功效的编译好的二进制代码比拟较,它的履行效力都是对照慢的。那末如果有一个东西可以帮咱们把用php写的法式编译成二进制代码就行了,如许不仅履行效力进步了,运转速度也加速了。真如果有这么一个东西,那就是一取两得了。

恰好,方才宣布的ZendEncode就是为此而开辟的。ZendEncode可以直接将剧本编译成二进制码。有了ZendEncode,你就能够将本人写好的php法式,编译后分发给良多用户,而用不着公然本人的源法式代码。编译好的二进制代码可以被zend Optimizer通明读取,也就是说,客户只需在他的办事器上装置Zend Optimizer就能够履行由ZendEncode编译好的php法式。编译法式中包括有Zend Optimizer的局部代码,所以编译过程当中对法式代码进一步作了优化处置,这即意味着剧本的履行效力进步了。

从必定意义上讲,ZendEncode是一个“PHP编译器”。然而,它又不是一个真正意义上的编译器,真正意义上的编译器会离开本来的编译情况运转,而ZendEncode编译过的法式,还要有ZendOptimizer的撑持,就好像是编译好的java二进制代码,其要有一个JVM来运转。所以,ZendOptimizer又可以看做是php编译好代码的虚拟机。不论怎样说,就是这么一个器材,它们要经由过程互相共同利用。

今朝ZendEncode撑持的操作体系有:Solaris,Linux,FreeBSD及Windows。ZendEncode可以直接运转,你的体系中纷歧定非要装置php。


2、ZendEncode的装置 (本文以linux情况下的装置为例申明)

先去下载一个软件包吧!ZendEncode不是自在软件有,利用它要付费,并且价钱相当高。幸亏zend.com供应了一个可供试用的软件包,用户可以避免费试用30天。这个软件包可以直接从http://www.zend.com/上取得。所以,起首要到http://www.zend.com/高低载ZendEncode、ZendOptimizer软件包。其次,要下载一个受权文件,也即license。因为ZendEncode是一个受权利用的产物,所以需求用户从zend.com上请求一个license。请求卡步调以下:

要请求一个试用的license,需求向zend.com供应你正在利用的盘算机的id,也即在请求页中所要填写的host ID(实践上就是你盘算机上的网卡的MAC地址),检查盘算机ID的办法以下:从zend.com下载一个lmutil.z的法式,解压后失掉法式lmutil,运转它,会依据体系的硬件特点发生一个序列串。将些序列号填入到请求license页的hostid中,zend.com会在48小时内为用户生成一个license,下载此license文件,文件名为zendEncode.dat,它是独一可使用在你的盘算机上。

1、 将ZendEncode软件包也解紧缩在/usr/local/Zend目次下。解紧缩完成后,目次下多了一个zendenc的文件,它就是谁人“编译器”啦。

2、 将谁人license文件复制到/usr/local/Zend目次下

装置完成。

3、ZendOptimizer的装置

完成了ZendEncode的装置,才完成了一半义务,要利用编译后的php二进制代码,还要装置一个注释器-ZendOptimizer,有了它的撑持,编译后的php二进制文件才干被准确地履行。

与ZendEncode分歧,ZendOptimizer是一个收费软件,它的次要功效是减速php剧本文件的运转,据Zend.com称,有了ZendOptimizer的优化,法式的履行效力可以进步600%,经由笔者的复杂测试,履行效力切实其实是进步了很多。

装置ZendOptimizer步调以下:

1、 解紧缩zendOptimizer软件包,将zendOptimizer.so文件复制到/usr/local/Zend/lib目次中

2、 翻开/usr/local/lib/php.ini文件,在文件中到场以下两行:

zend_optimizer.optimization_level=15

zend_extension=”/usr/local/Zend/lib/ZendOptimizer.so”

3、 从头启动Apache 办事器,使以上更重生效


4、ZendEncode的利用

好了,以上筹办任务全体完成了,如今写一个复杂的php剧本,利用zendEncode编译一下,看看后果若何,好,先写一个最复杂的剧本,看看编译后的代码能不克不及履行:

#vi test.php

<? Phpinfo(); ?>

编译它:

#[root@mail Zend]# ./zendenc test.php testencode.php

Zend Encoder Unlimited (TEST DRIVE) v1.1.0 (c) Zend Technologies, 1999-2000

Licensed to: xqkred.


Compiling test.php...

Done encoding test.php.

Optimizing... Done.

Saving... Done.

好,胜利编译。不外,编译好的法式巨细较之之前要大良多。

将testencode.php复制到Web办事器的宣布目次下,在阅读器上键入http://localhost/testencode.php,哇,编译后的代码可以胜利运转了!因为咱们利用是试用版的ZendEncode,所以,在页面的最下面会呈现一个图片,申明,这是一个由ZendEncode试用软件包所发生的二进制文件。以下图所示:


购置了正式版的用户,下面的图示将不会再现。

上面再看看它的履行效力吧!,起首写一个小的盘算法式粗略估量一下:compute.php

<?

$t=time();

for( $i=0;$i<1000000;$i++) {

if(($i%20)!=0) {echo $i; echo ",";}

else { echo "<br>";}

}

$t1=time();

echo "<br>"; echo "It used:"; echo $t1-$t; echo " seconds";

?>

这个法式在履行时,取体系的工夫,完成后再取体系工夫,两个值的差即为全部法式运转所需工夫,先在没有编译的情形下履行一遍,然后用ZendEncode编译后再履行一遍。互相对照了局:没有编译的情形下,运转所需工夫均匀为19秒,编译后的代码均匀履行工夫为 9秒,看来履行效力是进步了很多。

5、注重

因为php的开辟速度很快,其版本号也更新的很快,假如你依照以上做法做了,然而,你的阅读器显示是一团乱码,那末申明,你的php和正在利用的ZendOptimizer版本不相婚配,只需从头下载响应的ZendOptimizer即可处理以上乱码成绩。别的,要注重你下载的软件包的版本,在 linux情况下,有glibc及libc之分。Redhat 6今后的版本应当下载glibc类型的软件包。  就是管理员可以编辑,删除,回复 等功能,。加入管理员功能要加入登陆系统,慢慢你会想在线添加管理员,慢慢你会让自己的作品更漂亮些,慢慢1个完整的留言板就会出来了,
冷月葬花魂 该用户已被删除
沙发
发表于 2015-2-4 12:02:06 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
谁可相欹 该用户已被删除
板凳
发表于 2015-2-8 07:12:51 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
深爱那片海 该用户已被删除
地板
发表于 2015-2-9 12:05:01 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
若天明 该用户已被删除
5#
发表于 2015-2-15 02:07:11 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
柔情似水 该用户已被删除
6#
发表于 2015-3-4 10:57:00 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
爱飞 该用户已被删除
7#
发表于 2015-3-5 23:37:39 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-12 16:36:32 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
小妖女 该用户已被删除
9#
发表于 2015-3-13 10:07:32 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
飘飘悠悠 该用户已被删除
10#
发表于 2015-3-17 08:10:34 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
精灵巫婆 该用户已被删除
11#
发表于 2015-3-17 21:53:55 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
只想知道 该用户已被删除
12#
发表于 2015-3-24 08:41:34 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
admin 该用户已被删除
13#
发表于 2015-4-3 03:02:13 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
14#
发表于 2015-4-3 12:08:44 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
不帅 该用户已被删除
15#
发表于 2015-4-15 04:12:08 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
山那边是海 该用户已被删除
16#
发表于 2015-4-17 12:13:38 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
灵魂腐蚀 该用户已被删除
17#
发表于 2015-4-21 13:23:21 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
乐观 该用户已被删除
18#
发表于 2015-4-22 13:19:35 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
第二个灵魂 该用户已被删除
19#
发表于 2015-4-23 07:23:21 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
海妖 该用户已被删除
20#
发表于 2015-4-25 05:52:41 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:49

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表