如何使用C語(yǔ)言來(lái)編寫pHp的擴(kuò)展,pHp作為一門開(kāi)源語(yǔ)言

2023-11-27    分類: 網(wǎng)站建設(shè)

本文分享如何使用C語(yǔ)言編寫pHp擴(kuò)展。作為一門開(kāi)源語(yǔ)言,社區(qū)中有很多熱愛(ài)開(kāi)源開(kāi)發(fā)的愛(ài)好者。 pHp 在 web 領(lǐng)域如此強(qiáng)大的主要原因之一一直是站穩(wěn)腳跟。這是因?yàn)?pHp 有許多強(qiáng)大的擴(kuò)展。除了官方自己提供的擴(kuò)展,還有更多的開(kāi)源大牛加入,比如韓天峰的,伯德的yaf,yar等等,具體步驟就不多說(shuō)了。

第一步

到官網(wǎng)下載pHp源代碼文件并解壓到電腦某個(gè)文件夾中,在根文件夾中找到如下文件\php7\ext\.php。注意:此腳本為我們提供了生成自定義擴(kuò)展的框架。

第二步

因?yàn)橛行┟钪恢С窒到y(tǒng),所以我們需要安裝這個(gè)軟件來(lái)幫助我們支持一些命令,并將它們?cè)O(shè)置為系統(tǒng)環(huán)境變量。

執(zhí)行命令 .php --=demo。注意:首先將pHp添加為系統(tǒng)環(huán)境變量

ext目錄下會(huì)生成demo擴(kuò)展文件夾,里面包含要編寫的demo擴(kuò)展的基本文件。

第三步

修改demo.c文件,找到C語(yǔ)言的函數(shù)(d)在這個(gè)方法下面添加你的方法代碼,例如:

1

2

3

(演示){

("C");

}

然后修改如下方法

1

2

3

4

5

[]={

(d,NULL)/* 對(duì)于,. */

(demo,NULL)//這里添加一行代碼

/* 必須是 [] 中的最后一行 */

};

注意:為了讓擴(kuò)展匹配php運(yùn)行環(huán)境,必須基于你的php運(yùn)行環(huán)境的編譯版本(php7是VC14編譯的),在文件夾E:\php7\main\.w3 2.h文件中添加:

1

#“VC14”

第四步

使用編輯器編譯DLL文件

加載你的 pHp 擴(kuò)展文件路徑

將解決方案切換到

右擊右邊的項(xiàng)目屬性,添加pHp源代碼目錄(看你的實(shí)際路徑)

E:\php7

E:\php7\main

E:\php7\TSRM

E:\php7\Zend

右鍵單擊項(xiàng)目屬性、C/C++、預(yù)處理器、預(yù)處理器定義,編輯并添加以下變量:

=0

=1(這里紅色部分需要改成你的擴(kuò)展名,如果不改成你的擴(kuò)展名php printer.dll擴(kuò)展,php不會(huì)識(shí)別)

(這里紅色部分需要改成你的擴(kuò)展名,如果不改成你的擴(kuò)展名,php不會(huì)識(shí)別)

ZTS(添加這個(gè)變量是為了開(kāi)啟線程安全,不添加則關(guān)閉線程安全)

在E:\php7\\\文件夾中找到“.w32.h.in”,把這個(gè)文件復(fù)制到E:\php7\main\文件夾,去掉下面的“.in”

右鍵項(xiàng)目屬性php printer.dll擴(kuò)展,鏈接器,輸入,附加依賴,編輯,把php7.lib的路徑放進(jìn)去(這個(gè)文件在php編譯后的文件夾下,根目錄下的dev文件夾下)目錄)

步驟 5

最后點(diǎn)擊 in完成編譯。

將\ext\demo\下的demo.dll文件放入pHp中并添加擴(kuò)展。

1

2

3

演示();

我有時(shí)間想出如何編譯so擴(kuò)展文件,一點(diǎn)pHp,一點(diǎn)技術(shù)分享。

名稱欄目:如何使用C語(yǔ)言來(lái)編寫pHp的擴(kuò)展,pHp作為一門開(kāi)源語(yǔ)言
網(wǎng)頁(yè)地址:http://www.muchs.cn/news5/296905.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、企業(yè)建站、品牌網(wǎng)站制作、電子商務(wù)網(wǎng)站導(dǎo)航、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)