下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第PHP的runkit擴(kuò)展如何使用是不是很神奇。這個(gè)runkit擴(kuò)展就是在運(yùn)行時(shí)可以讓我們來(lái)動(dòng)態(tài)的修改一些常量、方法體及類(lèi)的功能擴(kuò)展。當(dāng)然,從系統(tǒng)安全的角度來(lái)來(lái),這個(gè)擴(kuò)展并不是很推薦。因?yàn)楸旧沓A康暮x就是不變的量,本身就不應(yīng)該修改的。同理,在運(yùn)行時(shí)動(dòng)態(tài)的改變函數(shù)體或者類(lèi)定義的內(nèi)容都是會(huì)有可能影響到其它調(diào)用到這些函數(shù)或類(lèi)的代碼,所以,這個(gè)擴(kuò)展是一個(gè)危險(xiǎn)的擴(kuò)展。
除了動(dòng)態(tài)地修改常量外,我們還可以使用runkit_constant_add()、runkit_constant_remove()函數(shù)來(lái)動(dòng)態(tài)地增加或者刪除常量。
安裝
runkit擴(kuò)展的安裝是需要在github下載然后進(jìn)行正常的擴(kuò)展編譯即可,pecl下載的已經(jīng)過(guò)時(shí)了。
PHP5:/zenovich/runkit
PHP7:/runkit7/runkit7.git
clone成功后進(jìn)行正常的擴(kuò)展編譯安裝步驟即可。
phpize
./configure
makeinstall
不同的PHP版本需要安裝不同版本的擴(kuò)展,同時(shí),runkit7還在開(kāi)發(fā)中,有一些函數(shù)還沒(méi)有支持,比如:
runkit_class_adopt
runkit_class_emancipate
runkit_import
runkit_lint_file
runkit_lint
runkit_sandbox_output_handler
runkit_return_value_used
Runkit_Sandbox
Runkit_Sandbox_Parent
在寫(xiě)這篇文章的測(cè)試代碼時(shí),上述函數(shù)或者類(lèi)都是不支持的。大家可以用PHP5的環(huán)境測(cè)試下原版的擴(kuò)展是否都能正常使用。
查看超全局變量鍵
print_r(runkit_superglobals());
//Array
//[0]=GLOBALS
//[1]=_GET
//[2]=_POST
//[3]=_COOKIE
//[4]=_SERVER
//[5]=_ENV
//[6]=_REQUEST
//[7]=_FILES
//[8]=_SESSION
//)
這個(gè)函數(shù)其實(shí)就是查看下當(dāng)前運(yùn)行環(huán)境中的所有超全局變量鍵名。這些都是我們常用的一些超全局變量,就不一一解釋了。
方法相關(guān)操作
方法操作就和常量操作一樣,我們可以動(dòng)態(tài)地添加、修改、刪除以及重命名各種方法。首先還是來(lái)看一下我們最關(guān)心的在動(dòng)態(tài)運(yùn)行時(shí)來(lái)修改方法體里面的邏輯代碼。
functiontestme(){
echo"OriginalTestmeImplementation\n";
testme();//OriginalTestmeImplementation
runkit_function_redefine('testme','','echo"NewTestmeImplementation\n";');
testme();//NewTestmeImplementation
定義了一個(gè)testme()方法,然后通過(guò)runkit_function_redefine()來(lái)修改它的實(shí)現(xiàn),最后再次調(diào)用testme()時(shí)輸出的就是新修改后的實(shí)現(xiàn)了。那么,我們能不能修改PHP自帶的那些方法呢?
//php.iniernal_override=1
runkit_function_redefine('str_replace','','echo"str_replacechanged!\n";');
str_replace();//str_replacechanged!
runkit_function_rename
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 孵化器運(yùn)營(yíng)服務(wù)制度
- 雞汁快餐店運(yùn)營(yíng)管理制度
- 生產(chǎn)運(yùn)營(yíng)部規(guī)章制度
- 河涌運(yùn)營(yíng)管理制度
- 地鐵運(yùn)營(yíng)相關(guān)制度
- 現(xiàn)代企業(yè)獎(jiǎng)懲管理制度(C)
- 現(xiàn)代企業(yè)采購(gòu)管理制度
- 班組規(guī)章制度建設(shè)
- 2026陜西咸陽(yáng)市高新一中教師招聘?jìng)淇碱}庫(kù)及一套完整答案詳解
- 運(yùn)營(yíng)機(jī)構(gòu)準(zhǔn)入制度
- 2026云南昭通市搬遷安置局招聘公益性崗位人員3人備考題庫(kù)及答案詳解(考點(diǎn)梳理)
- 標(biāo)書(shū)財(cái)務(wù)制度
- 四川發(fā)展控股有限責(zé)任公司會(huì)計(jì)崗筆試題
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫(kù)及一套答案詳解
- 2025-2030心理健康行業(yè)市場(chǎng)發(fā)展分析及趨勢(shì)前景與投資戰(zhàn)略研究報(bào)告
- 技術(shù)副總年終總結(jié)
- 《馬年馬上有錢(qián)》少兒美術(shù)教育繪畫(huà)課件創(chuàng)意教程教案
- 天津市專(zhuān)升本高等數(shù)學(xué)歷年真題(2016-2025)
- 2025山西焦煤集團(tuán)所屬華晉焦煤井下操作技能崗?fù)艘圮娙苏衅?0人筆試參考題庫(kù)帶答案解析
- 兒童骨科主任論兒童骨科
- 三力測(cè)試題70歲以上老人換領(lǐng)駕照
評(píng)論
0/150
提交評(píng)論