⑴ 用php編寫的一行行代碼 是怎麼在伺服器端運行的
從圖上可以看到,PHP實現了一個典型的動態語言執行過程:拿到一段代碼後,經過詞法解析、語法解析等階段後,源程序會被翻譯成一個個指令 (opcodes),然後ZEND虛擬機順次執行這些指令完成操作。PHP本身是用C實現的,因此最終調用的也都是C的函數,實際上,我們可以把PHP看 做是一個C開發的軟體。
PHP的執行的核心是翻譯出來的一條一條指令,也即opcode。
Opcode是PHP程序執行的最基本單位。一個opcode由兩個參數(op1,op2)、返回值和處理函數組成。PHP程序最終被翻譯為一組opcode處理函數的順序執行。
常見的幾個處理函數:
1 ZEND_ASSIGN_SPEC_CV_CV_HANDLER : 變數分配 ($a=$b)
2 ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER:函數調用
3 ZEND_CONCAT_SPEC_CV_CV_HANDLER:字元串拼接 $a.$b
4 ZEND_ADD_SPEC_CV_CONST_HANDLER: 加法運算 $a+2
5 ZEND_IS_EQUAL_SPEC_CV_CONST:判斷相等 $a==1
6 ZEND_IS_IDENTICAL_SPEC_CV_CONST:判斷相等 $a===1
⑵ php是用什麼語言開發的,c語言嗎
php的解釋器是用c寫的,解釋器相當於弱編譯器,但是php本身並不基於某種底層語言。
PHP在伺服器端執行的腳本語言,與C語言類似,是常用的網站編程語言。它驅動全球超過2億多個網站,有全球超過81.7%的公共網站在伺服器端採用PHP。PHP常用的數據結構都內置了,使用起來方便簡單,也一點都不復雜,表達能力相當靈活。
(2)phpzend內核擴展閱讀
主要特點
(一)開源性和免費性
由於PHP的解釋器的源代碼是公開的,所以安全系數較高的網站可以自己更改PHP的解釋程序。另外,PHP 運行環境的使用也是免費的。
(二)快捷性
PHP是一種非常容易學習和使用的一門語言,它的語法特點類似於C語言,但又沒有C語言復雜的地址操作,而且又加入了面向對象的概念,再加上它具有簡潔的語法規則,使得它操作編輯非常簡單,實用性很強。
(三)資料庫連接的廣泛性
PHP可以與很多主流的資料庫建立起連接,如MySQL、ODBC、Oracle等,PHP是利用編譯的不同函數與這些資料庫建立起連接的,PHPLIB就是常用的為一般事務提供的基庫。
參考資料來源:網路-PHP
⑶ PHP五大主流框架介紹
介紹PHP五大主流框架(排名不分先後)
1. Laravel
Laravel是一款簡潔、優雅的PHP Web開發框架。它旨在從混亂的代碼中解放開發者,助你構建完美的網路應用。代碼簡潔、富有表達力。
2. Thinkphp
THinkPHP框架是一個快速、兼容且輕量級的國產PHP開發框架。它誕生於2006年初,原名FCS,2007年元旦正式更名為ThinkPHP。特別適合小型項目,國內最受歡迎的國產php開源框架。
3. Zend Framework
Zend Framework (ZF)由Zend公司推出,是用PHP 5來開發web程序和服務的開源框架。ZF以100%面向對象編碼實現,組件結構獨特,每個組件幾乎獨立,提供「use-at-will」設計,便於開發者獨立使用。
4. Yii2
Yii是一款高性能框架,適用於開發WEB 2.0應用。Yii自帶豐富功能,如MVC、DAO/ActiveRecord、I18N/L10N、緩存、身份驗證和基於角色的訪問控制、腳手架、測試等,大幅縮短開發時間。
5. CodeIgniter
CodeIgniter是一款小巧但功能強大的PHP網站開發框架和工具包。為開發者提供了足夠的自由支持,幫助更快速地工作。
選擇合適的框架能加速項目構建,關鍵在於開發者有堅實的基礎。今日介紹到這里。
如需建立網站,推薦阿里雲建站雲企的活動。適合無建站經驗的同學,提供數千套網站模板,可隨意替換,備案上線速度快,擁有可視化的後台管理系統,集成流量分析工具,SEO收錄快等優勢。
⑷ 請教高手,如何解密用zend加密的php文件,已嘗試多種解密軟體還是不行,懇請高手幫忙!QQ:460602396
Zend加密的時候,如果版本在Zend Guard5.0以上,同時在配置設置里選擇以PHP5.3作為目標程序的版本來做加密的話,目前所有的Dezend內核都是無法解密的,直接不做任何處理。但目前運用廣泛的還是PHP5.2.x的版本,所以從兼容角度來看選擇PHP5.3來做Zend加密的並不多,實在不巧遇上了,也只能是放棄,目前沒有解密辦法。
另外一種解密不了的情況是,無論使用多高版本的Zend Guard,加密時使用PHP5.2.x作為目標版本(也就是使用PHP5.2.x來做開發,然後用Zend來加密,加密時有選項的),經過一些特殊處理以後,讓dezend工具試圖解密這些被加密的PHP程序,就出現代碼溢出,無法解密出源碼來,也能很好的保護代碼,而且Zend組件幾乎所有的伺服器或者虛擬主機都能安裝支持,兼容性就非常好了。
另外,看到有朋友說到易維這個加密工具,易維是使用自己的loader了,也是一套新的PHP加密程序,並不是所有的虛擬主機提供商的伺服器上都有安裝相應的loader,所以目前普及性還很不理想。如果一個PHP開發商或者開發者購買了這個易維的加密工具,那就需要要求他們所開發的PHP程序的用戶具有獨立主機或者VPS,用虛擬主機的用戶就得靠邊了。
⑸ php文本里 php和html代碼誰先執行誰啊
先執行PHP代碼,PHP和HTML混編的時候你肯定遇到過下面的情況:
<?php if(true){ ?>
<div>true</div>
<?php }else{ ?>
<div>false</div>
<?php } ?>
上面的代碼結果是瀏覽器顯示的是<div>true</div>
如果先執行html那麼結果你就發現PHP的邏輯判斷就不會生效了。
所以先執行的PHP,而PHP文件里的HTML代碼,程序會默認為是一個字元串被PHP輸出。以上代碼的最終呈現效果如果全換成PHP的話將會是下面的代碼:
<?php if(true){
echo '<div>true</div>';
}else{
echo '<div>false</div>';
}
?>
⑹ php底層原理 php是如何運行的
1、PHP動態語言執行過程:拿到一段代碼後,經過詞法解析、語法解析等階段後,源程序會被翻譯成一個個指令(opcodes),然後ZEND虛擬機順次執行這些指令完成操作。PHP本身是用C實現的,因此最終調用的也是C的函數,實際上,我們可以把PHP看做一個C開發的軟體。
2、PHP的4層運行體系:
(1)Zend引擎:Zend整體用純C實現,是PHP的內核部分,他將PHP代碼翻譯(詞法、語法解析等一系列編譯過程)為可執行opcode的處理並實現相應的處理方法、實現了基本的數據結構(如:hashtable、OO)、內存分配機制及管理、提供了相應的api方法供外部調用,是一切的核心,所有的外圍功能均圍繞Zend實現。
(2)Extensions:圍繞著Zend引擎,extensions通過組件式的方式提供各種基礎服務,我們常見的各種內置函數(array系列)、標准庫等都是通過extension來實現,用戶也可以根據需要實現自己的extension的典型應用)。
(3)Sapi:Sapi全稱,也就是服務端應用編程介面,Sapi通過一系列鉤子函數,使得PHP可以和外圍交互數據,這是PHP非常優雅和成功的設計,通過sapi成功的將PHP本身和上層應用解耦隔離,PHP可以不再考慮如何針對不同應用進行兼容,而應用本身也可以針對自己的特點實現不同的處理方式。
(4)上層應用:這就是我們平時編寫的PHP程序,通過不同的spai方式得到各種各樣的應用模式,如何通過webserver實現web應用、在命令行下已腳本方式運行等等。