亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

怎么在php 5.6版本中編寫一個PHP擴展

發布時間:2020-12-16 15:09:37 來源:億速云 閱讀:170 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關怎么在php 5.6版本中編寫一個PHP擴展,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

首先,下載最新的php源碼安裝包,進入ext/目錄,新建extstrcat.def:

string extstrcat(string strarg, int intarg)


隨后運行:

./ext_skel --extname=extstrcat --proto=extstrcat.def


修改ext/extstrcat/config.m4,去掉如下行前面的注釋(dnl):

PHP_ARG_ENABLE(extstrcat, whether to enable extstrcat support,  
Make sure that the comment is aligned:  
[  --enable-extstrcat           Enable extstrcat support])

此時來編輯ext/extstrcat/extstrcat.c,找到PHP_FUNCTION(extstrcat)函數,這里表示擴展中的方法名為extstrcat,方法實現如下:

PHP_FUNCTION(extstrcat)
{
     char *strarg = NULL;
     int argc = ZEND_NUM_ARGS();
     int strarg_len;
     long intarg;
 
     char intargstr[10];
     int retstrlen = 0;
     char *retstr = NULL;
 
     if (zend_parse_parameters(argc TSRMLS_CC, "sl", &strarg, &strarg_len, &intarg) == FAILURE)
         return;
 
     snprintf(intargstr, 9, "%d", intarg);
     retstrlen = strarg_len + strlen(intargstr) + 1;
     retstr = (char *)malloc(sizeof(char)* retstrlen);
     memset(retstr, '\0', retstrlen);
     strncat(retstr, strarg, strlen(strarg));
     strncat(retstr, intargstr, strlen(intargstr));
     RETURN_STRING(retstr, 1);
 
     php_error(E_WARNING, "extstract: not yet implemented");
}

,其中strarg和intarg即為對應的兩個字符串和整型參數。
接下來要做的事情就是編譯擴展,

phpize
./configure --enable-extstrcat
make

編譯成功之后,在ext/modules目錄下會生成extstrcat.so文件,

cp ./modules/extstrcat.so /usr/local/lib/php/extensions/no-debug-non-zts-20121212/

修改php.ini,增加extension = extstrcat.so。
重啟php-fpm,運行phpinfo()可以看到新增了extstrcat擴展。
現在來寫一個Demo,測試一下剛剛的php擴展,

<?php
if(!extension_loaded('extstrcat')) {
 dl('extstrcat.' . PHP_SHLIB_SUFFIX);
}
$ret=extstrcat('testarg',1234);
echo $ret;
?>

,命令行下運行該文件,得到testarg1234.

上述就是小編為大家分享的怎么在php 5.6版本中編寫一個PHP擴展了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

措美县| 航空| 上虞市| 泗水县| 张家界市| 开平市| 射洪县| 大余县| 广丰县| 田东县| 英德市| 孟村| 永丰县| 大名县| 建阳市| 轮台县| 乌苏市| 宾川县| 江阴市| 缙云县| 信丰县| 靖安县| 许昌县| 嘉峪关市| 宁武县| 视频| 苗栗县| 大关县| 呈贡县| 海阳市| 铜山县| 博客| 灌阳县| 信阳市| 长乐市| 凉城县| 冀州市| 宁南县| 宁安市| 从江县| 肇州县|