|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
左手拿着MOTOLOLA右手拿着NOKIA,要多潇洒,有多潇洒,哈哈,终于学会了,但是可能这个时候,又会有人不经意的拍拍肩膀对你说:哥们,别高兴的太早,你还是菜鸟,离学会还差着一大截呢!encode|法式 利用PHP的人都晓得,它是一个剧本编程东西,用它写的法式,必需以源码的模式放置在Web办事器上,所以咱们没法回护本人的源代码。人人都晓得任何一个剧本法式的履行效力同具有不异功效的编译好的二进制代码比拟较,它的履行效力都是对照低的。那末如果有一个东西可以帮咱们把用PHP写的法式编译成二进制代码就行了,如许不仅履行效力进步了,
运转速度也加速了。真如果有这么一个东西,那就是一箭双雕了。
如今这不是妄想了,Zend Encode就是为此而开辟的,它可以直接将剧本编译成二进制码。有了Zend Encode,你就能够将本人写好的PHP法式,编译后分发给良多用户,而用不着公然本人的源法式代码。编译好的二进制代码可以被Zend Optimizer通明读取,也就是说,客户只需在他的办事器上装置Zend Optimizer就能够履行由Zend Encode编译好的PHP法式。编译法式中包括有Zend Optimizer的局部代码,所以编译过程当中对法式代码进一步作了优化处置,这即意味着剧本的履行效力进步了。
从必定意义上讲,Zend Encode是一个“PHP编译器”。然而,它又不是一个真正意义上的编译器,由于真正编译完成的法式可以离开本来的编译情况运转,而Zend Encode编译过的法式,需求有Zend Optimizer的撑持。就像编译好的Java二进制代码,需求JVM的撑持。所以,Zend Optimizer可以看做是PHP编译好代码的虚拟机。不论怎样说,它们要经由过程互相共同利用。
今朝Zend Encode撑持的操作体系有:Solaris、Linux、FreeBSD及Windows。Zend Encode可以直接运转,电脑体系中纷歧定非要装置PHP。
Zend Encode的装置
先去下载一个软件包吧!Zend Encode不是自在软件,利用它要付费,并且价钱相当高。幸亏zend.com供应了一个可供试用的软件包,用户可以避免费试用30天。这个软件包可以直接从www.zend.com上取得。所以,起首要到www.zend.com高低载Zend Encode、Zend Optimizer软件包。其次,要下载一个受权文件license。因为Zend Encode是一个受权利用的产物,所以需求用户从zend.com上请求一个license。请求步调以下:
要请求一个试用的license,需求向zend.com供应你正在利用的盘算机的ID,也即在请求页中填写host ID(实践上就是你盘算机上的网卡的MAC地址)。检查盘算机ID的办法以下:从zend.com下载一个lmutil.z的法式,解压后失掉法式lmutil,运转它,它会依据体系的硬件特点发生一个序列串。将这个序列号填入到请求license页的host ID中,zend.com会在48小时内为用户生成一个license,下载此license文件,文件名为zendEncode.dat,它只能在这台电脑上利用。
1.将Zend Encode软件包也解紧缩到/usr/local/Zend目次下。解紧缩完成后,目次下多了一个zendenc的文件,它就是谁人“编译器”啦。
2.将谁人license文件复制到/usr/local/Zend目次下装置完成。
Zend Optimizer的装置
完成了Zend Encode的装置,才完成了一半义务,要利用编译后的PHP二进制代码,还要装置一个注释器――Zend Optimizer,有了它的撑持,编译后的PHP二进制文件才干被准确地履行。
与Zend Encode分歧,Zend Optimizer是一个收费软件,它的次要功效是减速PHP剧本文件的运转。据Zend.com称,有了Zend Optimizer的优化,法式的履行效力可以进步600%,经由笔者的复杂测试,履行效力切实其实是进步了很多。
装置Zend Optimizer步调以下:
1.解紧缩Zend Optimizer软件包,将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办事器,使以上更重生效。
Zend Encode的利用
如今筹办任务全体完成了,咱们写一个复杂的PHP剧本,利用Zend Encode编译一下,看看后果若何。先写一个最复杂的剧本,看看编译后的代码能不克不及履行:
#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办事器的宣布目次下,在阅读器上键入localhost/testencode.PHP,哇!编译后的代码可以胜利运转了!因为咱们利用是试用版的Zend Encode,所以,在页面的最下面会呈现一个图片,申明这是一个由Zend Encode试用软件包所发生的二进制文件。正式版的软件中,图片将不会再现。
上面再看看它的履行效力吧!起首写一个小的盘算法式粗略估量一下:
[compute.PHP]
<?
r=time();
for( 121=0;121<1000000;121++) {
if((121%20)!=0) {echo 121; echo ",";}
else { echo "<br>";}
}
=time();
echo "<br>"; echo "It used:"; echo -r; echo " seconds";
?>
这个法式在履行时,取体系的工夫,完成后再取体系工夫,两个值的差即为全部法式运转所需工夫,先在没有编译的情形下履行一遍,然后用Zend Encode编译后再履行一遍。对照了局:没有编译的情形下,运转所需工夫均匀为19秒,编译后的代码均匀履行工夫为9秒,看来履行效力是进步了很多。
如果不会怎么办,我的视频教程里有个最简单的留言板 最开始离不开模仿, |
|