在Linux下編寫php擴充套件

2022-09-16 00:39:08 字數 1154 閱讀 6658

或者在學習中有什麼問題歡迎交流

2.進入原始碼目錄中的ext目錄中

3.執行./ext_skel --extname=myext(這是擴充套件的名字) 生成擴充套件框架 [ps:如果ext_skel無法執行,請檢視ext_skel檔案是否有可執行許可權]

4.編寫擴充套件函式

a).我們開啟myext.c檔案,裡面有一些函式,包括

php_function(),這是編寫擴充套件中函式邏輯的註冊函式,每乙個擴充套件函式對應乙個php_function(擴充套件函式名){}

下面四個函式是擴充套件的c檔案中基本都有的,這些在php的整個生命週期中需要呼叫的,具體的請看:

php_minit_function(),這個函式在該擴充套件被載入時呼叫

php_rinit_function(),php初始化執行指令碼的基本環境,在檔案請求到達後,檔案編譯前執行該函式,例如記錄請求開始時間,結合請求結束時間,可以記錄下處理請求所花費的時間

php_rshutdown_function(),一般指令碼執行結束(執行到末尾或者exit,die退出後)後呼叫該函式

php_mshutdown_function(),sapi生命週期結束後,一般登出一些持久化的資源

b).我們來編寫乙個自己的函式

在myext.c檔案中新增

php_function(myfunction)

然後在myext.c檔案中的zend_function_entry myext_functions裡面新增php_fe(myfunction,null) 注意後面不帶逗號或者分號,需要換行

將config.m4中下面**前的dnl去掉

dnl php_arg_with(myext, for myext support,

dnl [ --with-myext include myext support])

在擴充套件目錄下執行phpize命令生成擴充套件的配置工具

然後執行./configure -with-php-config=/usr/bin/php-config && make && make install 編譯和安裝,成功後在php擴充套件目錄中可以看到編譯好的myext.so檔案

然後在php.ini檔案中新增extension=myext.so

重啟一下服務,測試myfunction(4,5)的結果是否輸出20

Linux下編寫php擴充套件

linux下編寫php擴充套件 1 所需 phpize 如果一開始是使用原始碼編譯裡面就有 php原始碼 2 到原始碼目錄下ext目錄裡面,執行.ext skel extname myext 3 生成擴充套件框架後,需要進入裡面修改m4檔案,php arg enable myext,whether ...

在Linux下編譯php擴充套件

在windows下我們需要開啟某個擴充套件,很容易。一般情況下,dll檔案都已經安靜地躺在extension目錄下,只等待你在php.ini裡將它前面的 去掉。而在linux,你cd到php的extensions目錄往往發現裡面空空的。或許只有幾個so檔案落寞地待著。你需要到php原始碼包裡尋找,希...

Linux 下編寫乙個 PHP 擴充套件

假設需求 開發乙個叫做 helloword 的擴充套件。擴充套件裡有乙個函式,helloword echo helloword tom 返回 hello world tom 本地環境php版本 5.6.9 系統 linux centos release 6.5 final 最終效果 實現流程 第一步...