ホームページ  >  記事  >  バックエンド開発  >  PHP 5.6 バージョンで PHP 拡張機能を作成する簡単な例_PHP チュートリアル

PHP 5.6 バージョンで PHP 拡張機能を作成する簡単な例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:01:43761ブラウズ

php 5.6 バージョンでの PHP 拡張機能の簡単な作成例

この記事では、php 5.6 バージョンでの PHP 拡張機能の簡単な作成例を中心に紹介し、拡張機能の実装コード、コンパイル方法、設定方法、使用例を示します。 、などのコンテンツ、必要な友達はそれを参照できます

PHP 自体にニーズを満たす API がない場合は、対応する拡張機能を自分で作成する必要がある場合があります。拡張機能を作成してコンパイルした後、それを独自の開発環境に追加して、PHP の機能を拡張できます。

これは、文字列と整数を接続する接続操作の簡単な拡張です。

まず、最新の PHP ソース コード インストール パッケージをダウンロードし、ext/ ディレクトリに入り、新しい extstrcat.def を作成します。

コードは次のとおりです:

文字列 extstrcat(文字列 strarg, int intarg)
次に、次を実行します:

コードは次のとおりです:

./ext_skel --extname=extstrcat --proto=extstrcat.def
ext/extstrcat/config.m4 を変更し、次の行の前にあるコメント (dnl) を削除します:

コードは次のとおりです:

PHP_ARG_ENABLE(extstrcat, extstrcat サポートを有効にするかどうか,
コメントが揃っていることを確認してください:
[ --enable-extstrcat extstrcat サポートを有効にする])

この時点で、ext/extstrcat/extstrcat.c を編集し、PHP_FUNCTION(extstrcat) 関数を見つけます。これは、拡張機能内のメソッドが次のように実装されることを意味します。

コードは次のとおりです:

PHP_FUNCTION(extstrcat)
{
char *strarg = NULL;
int argc = ZEND_NUM_ARGS();
int strarg_len;
長い整数;

char intargstr[10];
int retstrlen = 0;
char *retstr = NULL;

if (zend_parse_parameters(argc TSRMLS_CC, "sl", &strarg, &strarg_len, &intarg) == 失敗)
戻ります;

snprintf(intargstr, 9, "%d", intarg);
retstrlen = strarg_len + strlen(intargstr) + 1;
retstr = (char *)malloc(sizeof(char)* retstrlen);
memset(retstr, ' strncat(retstr, strarg, strlen(strarg));
strncat(retstr, intargstr, strlen(intargstr));
RETURN_STRING(retstr, 1);

php_error(E_WARNING, "extstract: まだ実装されていません");
}


、ここで、 strarg と intarg は、対応する 2 つの文字列パラメーターと整数パラメーターです。

次に行うことは、拡張機能をコンパイルすることです

コードは次のとおりです:

ぴぴせ

./configure --enable-extstrcat
作る

コンパイルが成功すると、extstrcat.so ファイルが ext/modules ディレクトリに生成されます。

コードは次のとおりです:

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


php.iniを変更し、extension = extstrcat.soを追加します。

php-fpm を再起動し、phpinfo() を実行して、extstrcat 拡張機能が追加されたことを確認します。

それでは、デモを作成して php 拡張機能をテストしてみましょう


コードは次のとおりです:

if(!extension_loaded('extstrcat')) {

dl('extstrcat.' .PHP_SHLIB_SUFFIX);
}
$ret=extstrcat('testarg',1234);
エコー $ret;
?>

、コマンド ラインでファイルを実行し、testarg1234 を取得します。

http://www.bkjia.com/PHPjc/971939.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/971939.html技術記事この記事では、PHP 5.6 バージョンでの PHP 拡張機能の簡単な作成例を中心に、拡張機能の実装コード、コンパイル方法、構成について説明します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。