目錄
第一步、生成代码
第二步、修改配置
第三步、实现功能
第四步、编译扩展
第五步、添加扩展
首頁 後端開發 php教程 PHP扩展开发详细教程

PHP扩展开发详细教程

Jun 20, 2016 pm 01:01 PM
影片教學

在几种情况下,我们会需要进行PHP扩展开发:

1、PHP本身无法访问的资源或是调用,

2、通过扩展的方式可以实现处于性能和效率的考虑,

3、用C实现会更好

4、处于商业或代码保护考虑,将代码封装起来

5、为了更深入的了解PHP,从这里入门

假设有这么一个扩展,提供一个叫ccvita_string的函数。下面详细介绍怎么样制作这样一个PHP扩展:

第一步、生成代码

PHP为了扩展开发的方便,提供了一个类似代码生成器的工具ext_skel,具体可以参见说明。
首先我们创建一个文件scutephp.skel,它的内容为
string scutephp_string(string str)
登入後複製

就是告诉ext_skel这个东西,我们要做的扩展里面有个函数叫scutephp_string。然后执行
cd usr/src/php-5.3.8/ext/<br />./ext_skel --extname=scutephp --proto=scutephp.skel<br />cd scutephp/
登入後複製

这时候,ccvita这个扩展的代码框架就已经出来了。

第二步、修改配置

然后修改config.m4文件将10、11、12三行最前面的dnl删除掉,就是将
dnl PHP_ARG_WITH(ccvita, for ccvita support,<br />dnl Make sure that the comment is aligned:<br />dnl [  --with-scutephp            Include scutephp support])
登入後複製

修改为
PHP_ARG_WITH(scutephp, for scutephp support,<br />Make sure that the comment is aligned:<br />[  --with-scutephp             Include scutephp support])
登入後複製

第三步、实现功能

修改源码scutephp.c文件
找到将scutephp_string这个函数修改为
PHP_FUNCTION(scutephp_string)<br />{<br />    char *str = NULL;<br />    int argc = ZEND_NUM_ARGS();<br />    int str_len;<br />    char *result;<br /><br />    if (zend_parse_parameters(argc TSRMLS_CC, "s", &str, &str_len) == FAILURE) <br />        return;<br /><br />    str_len = spprintf(&result, 0, "<a href="%.78s">Link</a>", str);<br />    RETURN_STRINGL(result, str_len, 0); <br />}
登入後複製

第四步、编译扩展

保存后,开始编译
/usr/local/php/bin/phpize<br />./configure --with-php-config=/usr/local/php/bin/php-config<br />make
登入後複製

第五步、添加扩展

这时候,一切顺利的话,该扩展已经在modules/scutephp.so这个位置了。下面就是将这个扩展加入到PHP中去,让我们PHP程序可以调用到。
cp modules/scutephp.so /usr/local/php/ext/<br />vim /usr/local/php/etc/php.ini<br />extension=/usr/local/php/ext/scutephp.so #在php.ini文件最后增加这一行<br />service php-fpm restart #重启PHP服务<br />cp ccvita.php /data/www/wwwroot/default/
登入後複製

接下来就可以访问scutephp.php这个文件,测试扩展了。


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vue教學推薦:2023最新的5個vue.js影片教學精選 vue教學推薦:2023最新的5個vue.js影片教學精選 Sep 20, 2018 pm 02:20 PM

vue.js好學嗎?答案是非常容易學習,也非常容易與其它庫或已有專案整合,那麼,vue該怎麼用呢?今天在這裡php中文網給大家推薦2023年最新的5個vue.js免費影片教學供大家學習。

2023最新layui影片教學推薦(建議收藏) 2023最新layui影片教學推薦(建議收藏) Jul 19, 2021 pm 05:22 PM

以下為大家整理了前端UI框架 — layui的影片教程,不需要從迅雷、百度雲之類的第三方網盤平台下載,全部在線免費觀看。教程由淺入深,有前端基礎的人就能學習,從安裝到案例講解,全面詳細,幫助你更快更好的掌握layui框架!

DeepSeek使用常見問題匯總 DeepSeek使用常見問題匯總 Feb 19, 2025 pm 03:45 PM

DeepSeekAI工具使用指南及常見問題解答DeepSeek是一款功能強大的AI智能工具,本文將解答一些常見的使用問題,助您快速上手。常見問題解答:不同訪問方式的區別:網頁版、App版和API調用在功能上沒有區別,App只是網頁版的封裝。本地部署使用的是蒸餾模型,能力略遜於完整版DeepSeek-R1,但32位模型理論上擁有90%的完整版能力。酒館(SillyTavern)是什麼? SillyTavern是一個前端界面,需要通過API或Ollama調用AI模型。破限是什麼

2023最新swoole影片教學推薦(從入門到高級) 2023最新swoole影片教學推薦(從入門到高級) Oct 25, 2019 pm 02:09 PM

以下為大家整理了php非同步通訊框架Swoole的影片教程,不需要從迅雷、百度雲之類的第三方平台下載,全部線上免費觀看。教程由淺入深,有php基礎的人就能學習,從安裝到案例講解,全面詳細,幫助你更快更好的掌握Swoole框架!

2023年最新WordPress影片教學推薦 2023年最新WordPress影片教學推薦 Oct 25, 2019 pm 01:12 PM

這次PHP中文網整合了相關的影片教學,中文手冊,以及相關的精選文章安麗給大家,統統免費! ! !透過我們分享的視頻,可隨時隨地免費觀看教程視頻,也不需要迅雷或百度網盤下載了。

2023年最新phpcms影片教學推薦(二次開發必學) 2023年最新phpcms影片教學推薦(二次開發必學) Oct 25, 2019 pm 03:45 PM

許多站長使用PHPCMS進行二次開發建站,PHP中文網特意推出了phpcms視頻教程,大家可以隨時隨地免費觀看視頻教程,不需要從百度網盤下載,非常方便。

2023年織夢dedeCMS影片教學推薦 2023年織夢dedeCMS影片教學推薦 Oct 25, 2019 pm 01:56 PM

織夢內容管理系統(DedeCMS) 以簡單、實用、開源而聞名,是國內最知名的PHP開源網站管理系統,也是使用用戶最多的PHP類CMS系統,在經歷多年的發展,目前的版本無論在功能,還是在易用性方面,都有了長足的發展與進步。

2023年最新帝國cms影片教學推薦(收藏) 2023年最新帝國cms影片教學推薦(收藏) Oct 25, 2019 pm 02:30 PM

php中文網為大家整理了帝國cms影片教學相關內容。包含了帝國cms安裝影片教學、帝國cms開發手冊、帝國cms模板資源和一些帝國cms的技術文章。

See all articles