本文實例講述了php擴展開發。分享給大家供大家參考,具體如下:
一、進入php源碼包,找到ext文件夾
cd /owndata/software/php-5.4.13/ext
文件夾下放的都是php的相關擴展模塊
二、生成自己的擴展文件夾和相關文件
php支持開發者開發自己的擴展,提供了ext_skel骨架,用來構建擴展基本文件
./ext_skel --extname=myext
運行完成后,會在ext目錄下生產一個myext擴展目錄
三、編寫一個hello world簡單測試擴展
cd myext
1.編輯myext目錄下的config.m4文件
dnl PHP_ARG_WITH(myext, for myext support,
dnl Make sure that the comment is aligned:
dnl [ --with-myext Include myext support])
將上面這段改成
PHP_ARG_WITH(myext, for myext support,
[ --with-myext Include myext support])
2.編輯php_myext.h文件
修改php_myext.h,看到PHP_FUNCTION(confirm_myext_compiled);
這里就是擴展函數聲明部分,可以增加一
PHP_FUNCTION(myext_helloworld);
3.編輯myext.c文件在這個里面增加一行PHP_FE(myext_helloworld, NULL)
const zend_function_entry myext_functions[] = {
PHP_FE(confirm_myext_compiled, NULL) /* For testing, remove later. */
PHP_FE(myext_helloworld, NULL)
PHP_FE_END /* Must be the last line in myext_functions[] */
};
最后在文件末尾加入myext_helloworld執行代碼
PHP_FUNCTION(myext_helloworld)
{
char *arg = NULL;
int arg_len, len;
char *strg;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", arg, arg_len) == FAILURE) {
return;
}
php_printf("my first ext,Hello World!\n");
RETRUN_TRUE;
}
四、編譯php擴展
在myext目錄下運行phpize
/usr/local/webserver/php/bin/phpize
安裝擴展
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make make install
然后在php安裝的目錄下生產.so的文件
/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/myext.so
復制myext.so文件到php安裝的擴展目錄下
cp myext.so /usr/local/webserver/php/ext/
編輯php.ini文件加入一行擴展路徑
extension=/usr/local/webserver/php/ext/myext.so
重啟php-fpm
查看php擴展是否安裝進去了
/usr/local/webserver/php/bin/php -m|grep myext
確認成功后測試myext打印helloworld
/usr/local/webserver/php/bin/php -r "myext_helloworld('test');"
或者創建demo.php
?php
echo myext_helloworld('test');
?>
/usr/local/webserver/php/bin/php demo.php
運行后輸出
my first ext,Hello World!
自此擴展開發小demo就實現了
更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP擴展開發教程》、《PHP網絡編程技巧總結》、《php curl用法總結》、《PHP數組(Array)操作技巧大全》、《PHP數據結構與算法教程》、《php程序設計算法總結》及《php字符串(string)用法總結》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:- PHP擴展開發教程(總結)
- PHP擴展開發入門教程
- PHP內核介紹及擴展開發指南—基礎知識
- 初步介紹PHP擴展開發經驗分享
- PHP7擴展開發教程之Hello World實現方法示例
- PHP7擴展開發之基于函數方式使用lib庫的方法詳解
- PHP7擴展開發之hello word實現方法詳解
- 快速開發一個PHP擴展圖文教程
- 詳解Window7 下開發php擴展
- 一個簡單php擴展介紹與開發教程
- 關于嘗試開發PHP的MYSQL擴展的使用
- windows下開發并編譯PHP擴展的方法