中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣編寫PHP擴展

發布時間:2021-02-01 11:46:10 來源:億速云 閱讀:141 作者:小新 欄目:開發技術

小編給大家分享一下怎樣編寫PHP擴展,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

用C/C++擴展PHP的優缺點:
優點:
效率,還是效率
減少PHP腳本的復雜度, 極端情況下, 你只需要在PHP腳本中,簡單的調用一個擴展實現的函數,然后你所有的功能都就被擴展實現了
而缺點也是顯而易見的:
開發復雜
可維護性降低
開發周期變長, 最簡單的一個例子,當你用PHP腳本的時候, 如果你發現某個判斷條件出錯,你只要修改了這一行,保存,那么就立刻能見效。 而如果是在C/C++編寫的PHP擴展中, 那你可需要,修改源碼,重新編譯,然后重新load進PHP, 然后重啟Apache,才能見效。
如果你熟悉C,那么編寫一個PHP擴展,并不是什么非常難的事情。 PHP本身就提供了一個框架,來簡化你的開發。
最簡單的方式來開始一個PHP擴展的開發,是使用PHP提供的擴展框架wizard ext_skel, 它會生成一個PHP擴展所必須的最基本的代碼, 要使用它,首先你要下載PHP的源碼,或者開發包, 進入PHP源碼的ext目錄, 就會發現這個工具。
生成一個擴展:
./ext_skel --extname=myext
進入/myext,選擇擴展類型:
vi config.m4
下面兩種類型選一個就行了:

復制代碼 代碼如下:


//(依賴外部庫)
dnl PHP_ARG_WITH(myext, for myext support,
dnl Make sure that the comment is aligned:
dnl [ --with-myext Include myext support])
//去掉dnl
 PHP_ARG_WITH(myext, for myext support,
 Make sure that the comment is aligned:
 [  --with-myext             Include myext support])

//或者將 //(不依賴外部庫) dnl PHP_ARG_ENABLE(myext, whether to enable myext support,dnl Make sure that the comment is aligned:dnl [ --enable-myext Enable myext support])//去掉dnl
修改頭文件php_myext.h:
//PHP_FUNCTION(confirm_myext_compiled); /* For testing, remove later. */
//修改為
PHP_FUNCTION(myext); /* For testing, remove later. */
修改myext.c:
//將
//zend_function_entry myext_functions[] = {
// PHP_FE(confirm_myext_compiled, NULL) /* For testing, remove later. */
// {NULL, NULL, NULL} /* Must be the last line in myext_functions[] */
//};
//修改為
zend_function_entry myext_functions[] = {
PHP_FE(myext, NULL) /* For testing, remove later. */
{NULL, NULL, NULL} /* Must be the last line in myext_functions[] */
};
//在文件底部添加自己的函數
PHP_FUNCTION(myext)
{
zend_printf("Hello World!\n");
}
安裝自己的php擴展myext:
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install


修改php.ini,添加:
extension = "myext.so"
重啟web服務器,查看phpinfo,即可看到自己的擴展:

怎樣編寫PHP擴展

新建測試php文件:

<?php
myext();

執行此文件,即可看到再熟悉不過的“Hello World!”。

怎樣編寫PHP擴展

以上是“怎樣編寫PHP擴展”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節
推薦閱讀:
  1. 安裝php擴展
  2. php擴展

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥棱县| 浑源县| 许昌县| 郎溪县| 绵阳市| 新巴尔虎左旗| 清水县| 富川| 武川县| 英德市| 松原市| 张家川| 刚察县| 米易县| 阳城县| 平泉县| 崇左市| 昭苏县| 高碑店市| 巴南区| 安仁县| 临沭县| 井研县| 南木林县| 安塞县| 响水县| 玉环县| 固原市| 富锦市| 梅河口市| 利津县| 曲麻莱县| 新竹县| 菏泽市| 民县| 汉源县| 布拖县| 淮滨县| 会泽县| 巨鹿县| 德州市|