需求: 寫第乙個php擴充套件, 裡面包含乙個函式叫 maxwelldu, maxwelldu可以計算陣列的長度(與count相同)
要求: 了解c/c++程式設計, 熟悉php程式設計
系統: centos6.5
環境: lnmp(yum方式安裝)
cd ~
mkdir software
cd software
wget
tar zxvf php-5.6.11.tar.gz
cd php-5.6.11/ext
#建立擴充套件專案, 建立完成之後ext目錄下會多乙個sayhello的資料夾,這個資料夾就是我們的擴充套件專案
./ext_skel --extname=maxwelldu
cd maxwelldu
vim config.m4
#開啟允許, 去掉php_arg_enable這一行前的dnl和 [ --enable-maxwelldu ] 這一行前面的dnl
php_arg_enable(maxwelldu, whether to enable maxwelldu support,
dnl make sure that the comment is aligned:
[ --enable-maxwelldu enable maxwelldu support])
#檔案末尾新增
vim php_maxwelldu.h
php_function(maxwelldu);
#在檔案末尾新增
vim maxwelldu.c
```php_function(maxwelldu)
arr_hash = z_arrval_p(arr); //將陣列轉換成hashtable
array_count = zend_hash_num_elements(arr_hash);//通過zend提供的函式獲取一共有多少個元素
return_long(array_count); //返回元素的個數
}```
#然後修改zend_function_entry maxwelldu_functions =
};```
#編譯
#注意php的安裝方式不同php-config的目錄也可能不一樣
phpize
./configure --with-php-config=/usr/bin/php-config
make
make test
make install
#這個時候會自動將擴充套件放到對應的擴充套件目錄
#修改php的配置檔案, 像平時新增mysql,memcache等擴充套件一樣
#重啟apache或者php-fpm
service php-fpm restart#檢視已經安裝的擴充套件
php -m
#在phpinfo裡面可以檢視到maxwelldu
#然後就可以在php指令碼裡面使用了
<?php
$arr = [
1, 2, 3, 4, 5
];echo maxwelldu($arr) == count($arr), php_eol; //列印出1就表示函式返回的陣列個數和系統的count函式返回值一樣
第乙個php5 6擴充套件
1.到php源資料夾下面的ext資料夾 2.執行.ext skel,從說明可以看到,我們只需要執行.ext skel extname liushunqiu,這樣便建立了乙個liushunqiu擴充套件了 3.進入liushunqiu資料夾下面,編輯config.m4檔案.修改如下圖 4.編輯lius...
第乙個有點作用的PHP擴充套件
c c 去開發php擴充套件 我覺的對於php開發人員來說,學的東西非常雜,也非常多,當然了開發php擴充套件也是乙個必須要掌握的技能,這裡膜拜下大神鳥哥 laruence 今天要開發的第乙個有點功能的擴充套件,主要作用是記錄日誌的時候生成日誌前面的日期部分 即使當前的時間,年 月 日 時 分 秒 ...
php獲取陣列第乙個值
如果資料預設key不使用數字,而是字串時怎麼獲取第一值呢?下面給到一套獲取陣列的方法。根據實際情況決定用哪個吧。transport array foot bike car plane mode current transport mode foot mode next transport mode ...