摘要:主要是使用語言來開發擴展,現在的案例正在一步一步完善中,希望有興趣的朋友一起來加入和完善,現在已經完成的案例如下登錄倉庫地址分布創建您的特性分支提交您的改動將您的改動記錄提交到遠程倉庫然后到網站的該遠程倉庫的分支下發起下邊是
主要是使用C語言來開發PHP擴展,現在的案例正在一步一步完善中,希望有興趣的朋友一起來加入和完善,現在已經完成的案例如下:
Dicretory | Explain |
---|---|
hello_word | php hello word extension |
widuu | php ini settings and read php ini configure |
w_string | php returning values |
登錄 https://github.com
倉庫地址分布 http://github.com/widuu/php_ext
創建您的特性分支 (git checkout -b my-new-feature)
提交您的改動 (git commit -am "Added some feature")
將您的改動記錄提交到遠程 git 倉庫 (git push origin my-new-feature)
然后到 github.com 網站的該 git 遠程倉庫的 my-new-feature 分支下發起 Pull Request
下邊是INI的小擴展代碼片段
#ifdef HAVE_CONFIG_H #include "config.h" #endif #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "php_widuu.h" ZEND_DECLARE_MODULE_GLOBALS(widuu) const zend_function_entry widuu_functions[] = { PHP_FE(read_ini, NULL) PHP_FE_END }; zend_module_entry widuu_module_entry = { #if ZEND_MODULE_API_NO >= 20010901 STANDARD_MODULE_HEADER, #endif "widuu", widuu_functions, PHP_MINIT(widuu), PHP_MSHUTDOWN(widuu), NULL, NULL, PHP_MINFO(widuu), #if ZEND_MODULE_API_NO >= 20010901 PHP_WIDUU_VERSION, #endif STANDARD_MODULE_PROPERTIES }; #ifdef COMPILE_DL_WIDUU ZEND_GET_MODULE(widuu) #endif PHP_INI_BEGIN() STD_PHP_INI_ENTRY("widuu.enable", "1", PHP_INI_ALL, OnUpdateBool, enable, zend_widuu_globals, widuu_globals) STD_PHP_INI_ENTRY("widuu.size", "42", PHP_INI_ALL, OnUpdateLong, size, zend_widuu_globals, widuu_globals) STD_PHP_INI_ENTRY("widuu.name", "widuu", PHP_INI_ALL, OnUpdateString, name, zend_widuu_globals, widuu_globals) PHP_INI_END() PHP_MINIT_FUNCTION(widuu) { REGISTER_INI_ENTRIES(); return SUCCESS; } /* }}} */ /* {{{ PHP_MSHUTDOWN_FUNCTION */ PHP_MSHUTDOWN_FUNCTION(widuu) { UNREGISTER_INI_ENTRIES(); return SUCCESS; } /* }}} */ /* {{{ PHP_MINFO_FUNCTION */ PHP_MINFO_FUNCTION(widuu) { php_info_print_table_start(); php_info_print_table_header(2, "widuu support", "enabled"); php_info_print_table_row(2 , "author", "widuu函數 string read_ini(string parameter);" ); php_info_print_table_end(); DISPLAY_INI_ENTRIES(); } /* }}} */ PHP_FUNCTION(read_ini){ char *str,*varname; int str_len; if( zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "s" ,&varname,&str_len) == FAILURE){ php_error_docref(NULL TSRMLS_CC, E_WARNING, "don"t exists parameter"); return; } str = zend_ini_string( varname, str_len+1, 0 ); if (!str) { RETURN_FALSE; } RETURN_STRING( str , 1); // str = zend_ini_string("widuu.name", sizeof("widuu.name"), 0); // long maxwait = zend_ini_long("widuu.size", sizeof("widuu.size"), 0); // if (str == NULL) { // php_error_docref("widuu.size", E_WARNING, "config not exists"); // } // printf("%s ",str ); // printf("%d ", maxwait ); // if (name != NULL){ // printf("%s ", name); // } // RETURN_FALSE; }
echo read_ini("widuu.name");
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/21032.html
摘要:四使用語言開發是我重點推薦的擴展開發框架,簡明易懂,功能強大,開發效率高,代碼易維護,執行速度快。優點三支持,的擴展開發有兩套擴展開發框架,分別支持,,雖然框架代碼有兩個,但是接口卻是一樣的。 PHP擴展是高級PHP程序員必須了解的技能之一,對于一個初入門的PHP擴展開發者,怎么才能開發一個成熟的擴展,進入PHP開發的高級領域呢?本系列開發教程將手把手帶您從入門進入高級階段。本教程系列...
摘要:更多關于的技術文章的擴展是用語言編寫,是語言引擎,內核。見提供了一種類似的高級語言語法的方式,來自動生成擴展的語言代碼,使編寫擴展變得非常的簡單。直接修改該文件的代碼,使用原擴展的編輯方法也是可以滴。 更多關于PHP的技術文章http://www.codefrom.com/ php的擴展是用c語言編寫,Zend是語言引擎,PHP內核。在實際編寫php擴展的時候,需要使用大量的...
摘要:簡介通過擴展,我們可以在代碼中使用一些特定的方法大部分的擴展都是用寫的。這個目錄與我們的擴展同名。我們先來在擴展中創建一個類,使用此類來渲染。接下來命令行執行以下命令來編譯擴展第一次運行以上命令時,會初始化一些東西。 showImg(https://segmentfault.com/img/remote/1460000018698586); 簡介: 通過 PHP 擴展, 我們可以在 p...
摘要:概述是一個開源的用于簡化擴展的創建和維護的語言。它使得不擅長的開發人員也能寫出擴展。是縮寫,讀音為。然后我們在里調用方法正常的話會輸出。至此我們也完成了我們的第一個擴展。 概述 Zephir是一個開源的用于簡化PHP擴展的創建和維護的語言。它使得不擅長C/C++的PHP開發人員也能寫出PHP擴展。Zephir是Zend Engine/PHP/Intermediate縮寫,讀音為zep...
摘要:變量作為函數返回值時,必須聲明為動態類型。動態變量與中的變量基本完全相同支持在使用時改變類型。比較運算符在運算時考慮變量類型,如果是動態變量與一致。與不一致,語句可以沒有,表示忽略所有異常。 上一篇 《Zephir 簡介》 簡單介紹了環境搭建,編寫了一個的簡單示例。這一篇繼續介紹 Zephir 基礎。 基本語法Zephir 中,每個文件都必須有且只有一個類,每個類都必須有一個命名空間,...
閱讀 1826·2021-11-23 09:51
閱讀 947·2021-10-08 10:05
閱讀 3431·2021-09-26 09:55
閱讀 1039·2021-09-22 15:21
閱讀 1633·2021-09-09 09:33
閱讀 1266·2019-08-30 15:56
閱讀 1285·2019-08-30 15:55
閱讀 969·2019-08-30 13:19