寫第乙個PHP擴充套件, 實現計算陣列的個數

2021-09-02 12:02:41 字數 1813 閱讀 5831

需求: 寫第乙個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 ...