1、PHP本身無法訪問的資源或是調用,
2、通過擴展的方式可以實現處於性能和效率的考慮,
3、用C實現會更好
4、處於商業或代碼保護考慮,將代碼封裝起來
5、為了更深入的了解PHP,從這裡入門
假設有這麼一個擴展,提供一個叫ccvita_string的函數。下面詳細介紹怎麼樣制作這樣一個PHP擴展:
string 52itbc_string(string str)
cd usr/src/php-5.3.8/ext/ ./ext_skel --extname=52itbc --proto=52itbc.skel cd 52itbc/
dnl PHP_ARG_WITH(ccvita, for ccvita support, dnl Make sure that the comment is aligned: dnl [ --with-52itbc Include 52itbc support])
PHP_ARG_WITH(52itbc, for 52itbc support, Make sure that the comment is aligned: [ --with-52itbc Include 52itbc support])
PHP_FUNCTION(52itbc_string) { char *str = NULL; int argc = ZEND_NUM_ARGS(); int str_len; char *result; if (zend_parse_parameters(argc TSRMLS_CC, "s", &str, &str_len) == FAILURE) return; str_len = spprintf(&result, 0, "<a href="%.78s">Link</a>", str); RETURN_STRINGL(result, str_len, 0); }
/usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make
cp modules/52itbc.so /usr/local/php/ext/ vim /usr/local/php/etc/php.ini extension=/usr/local/php/ext/52itbc.so #在php.ini文件最後增加這一行 service php-fpm restart #重啟PHP服務 cp ccvita.php /data/www/wwwroot/default/接下來就可以訪問52itbc.php這個文件,測試擴展了。 *