用Zend Encode編寫開發PHP程式

2022-10-06 15:12:30 字數 3123 閱讀 6577

使用php的人都知道,zend encode是乙個指令碼程式設計工具,用它寫的程式,必須以原始碼的形式放置在web伺服器上,所以我們無法保護自己的源**。大家都知道任何乙個指令碼程式的執行效率同具有相同功能的編譯好的二進位制**相程式設計客棧比較,它的執行效率都是比較低的。那麼要是有乙個工具能夠幫我們把用php寫的程式編譯成二進位制**就好了,這樣不但執行效率提高了,執行速度也加快了。真要是有這麼乙個工具,那就是一舉兩得了。

現在這不是夢想了,zend encode就是為此而開發的,它可以直接將指令碼編譯成二進位製碼。有了zend encode,你就可以將自己寫好的php程式,編譯後分發給很多使用者,而用不著公開自己的源程式**。編譯好的二進位制**可以被zend optimizer透明讀取,也就是說,客戶只要在他的伺服器上安裝zend optimizer就可以執行由zend encode編譯好的php程式。編譯程式中包含有zend optimizer的部分**,所以編譯過程中對程式**進一步作了優化處理,這即意味著指令碼的執行效率提高了。

從一定意義上講,zend encode是乙個「php編譯器」。但是,它又不是乙個真正意義上的編譯器,因為真正編譯完成的程式可以脫離原來的編譯環境執行,而zend encode編譯過的程式,需要有zend optimizer的支援。就像編譯好的j**a二進位制**,需要jvm的支援。所以,zend optimizer可以看作是php編譯好**的虛擬機器。不管怎麼說,它們要通過相互配合使用。

目前zend encode支援的作業系統有:solaris、linux、freebsd及windows。zend encode可以直接執行,電腦系統中不一定非要安裝php。

zend encode的安裝

先去**乙個軟體包吧!zend encode不是自由軟體,使用它要付費,而且**相當高。幸好zend.com提供了乙個可供試用的軟體包,使用者可以免費試用30天。這個軟體包可以直接從上獲得。所以,首先要到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.

s**ing... done.

好,成功編譯。不過,編譯好的程式大小較之以前要大很多。

將testencode.php複製到web伺服器的發布目錄下,在瀏覽器上鍵入http://localhost/testencode.php,哇!編譯後的**可以成功執行了!由於我們使用是試用版的zend encode,所以,在頁面的最上面會出現乙個,說明這是乙個由zend encode試用軟體包所產生的二進位制檔案。正式版的軟體中,將不會再現。

下面再看看它的執行效率吧!首先寫乙個小的計算程式粗略估計一下:

[compute.php]

<?$t=time();

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

else

}$t1=time();

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

?>這個程式在執行時,取系統的時間,完成後再取系owhfcphbi統時間,兩個值的差即為整個程式執行所需時間,先在沒有編譯的情況下執行一遍,然後用zend encode編譯後再執行一遍。比較結果:沒有編譯的情況下,執行所需時間平均為19秒,編譯後的**平均執行時間為 9秒,看來執行效率是提高了不少。(出處:風閃網路學院)

本文標題: 用zend encode編寫開發php程式

本文位址: /wangluo/php/21230.html

用Zend Encode編寫開發PHP程式

zend encode的工作原理 使用php的人都知道,它是乙個指令碼程式設計工具,用它寫的程式,必須以原始碼的形式放置在web伺服器上,所以我們無法保護自己的源 大家都知道任何乙個指令碼程式的執行效率同具有相同功能的編譯好的二進位制 相比較,它的執行效率都是比較低的。那麼要是有乙個工具能夠幫我們把...

robotframework編寫用例

1 test cases 2test with settings 3 documentation another dummy test4 用於指定測試用例文件 5 tags dummy owner johnoe6 用於指定測試用例標籤 7 template 8 用於指定測試模板,測試用例本身將只包含...

用CodeBlocks OpenMP編寫並行程式

參考這篇博文 步驟 2.配置編譯器,在selected compiler選項中選gnu gcc compiler 3.填寫編譯引數,compiler setting裡的other options中貼上 fopenmp 4.填寫連線引數,link setting裡的other options中貼上 l...