ホームページ  >  記事  >  php教程  >  PHP 拡張機能のグラフィック チュートリアルを迅速に開発する

PHP 拡張機能のグラフィック チュートリアルを迅速に開発する

WBOY
WBOYオリジナル
2016-06-13 12:25:37903ブラウズ

要件: たとえば、heiyeluren という拡張機能を開発します。拡張機能には heiyeluren_test() という関数があり、文字列を入力すると、関数は次のように返します。
要件: C/C プログラミングを理解し、PHP プログラミングに精通している
環境: 対応するバージョンの php のソース コードのコピーをダウンロードします。ここでは php-5.2.6 を使用します。最初に php を通常どおりインストールします。 php は /usr /local/php ディレクトリにインストールされ、ソースコードは /root/soft/php/php-5.2.6/ にあります。今すぐ始めてください。
ステップ 1: 拡張フレームワークの生成


cd /root/soft/php/php-5.2.6/ext
./ext_skel --extname=heiyeluren
cd /root/soft/php/php-5.2. 6/ext/heiyeluren
vi config.m4
ファイルを開いた後、DNL を削除し、次の情報を取得します:
PHP_ARG_ENABLE(heiyeluren、heiyeluren サポートを有効にするかどうか、[ - -enable-heiyeluren heiyeluren サポートを有効にする])
保存して終了します。
(図 01)

ステップ 2: コードを作成します

vi php_heiyeluren.h検索: PHP_FUNCTION(confirm_heiyeluren_compiled);、1 行追加します:

PHP_FUNCTION(heiyeluren_test); 保存して終了します。
(写真02)



vi heiyeluren.c関数を配列に追加し、zend_function_entry heiyeluren_functions[] を見つけて、次を追加します:

PHP_FE(heiyeluren, NULL)(写真03)

heiyeluren.c ファイルの最後に移動し、次のコードを追加します。


PHP_FUNCTION(heiyeluren_test){
char *arg = NULL;
int arg_len, len;
char *strg;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) { return;
}

len = spprintf(&strg, 0, "入力文字列: %sn", arg); RETURN_STRINGL(strg, len, 0);
}

保存して出口 。
(写真04)

ステップ 3: コンパイルとインストール

cd /root/soft/php/php-5.2.6/ext/heiyeluren /usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make test
make install

次に、/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/heiyeluren.so があるかどうかを確認します

php.ini を編集して拡張機能を追加します。

vi /usr/local/php/lib/php.ini[PHP] モジュールの下に追加します:

extension = heiyeluren.so保存して終了します。
(写真05)

注: 拡張ファイルのディレクトリがない場合、またはインストール エラーが発生した場合は、このディレクトリを自分で作成し、そのディレクトリに拡張機能をコピーして、php.ini ファイルの extension_dir を次のディレクトリに変更することを忘れないでください。ディレクトリ:


extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"(図 06)

ステップ 4: インストール結果を確認します
モジュールがロードされているかどうかを確認します:
/usr/local/php/bin/php -m, it

[PHP Modules]...
heiyeluren
...
[Zend Modules]
が出力されます。

次に、Apache を再起動し、phpinfo() を出力すると、次のことが確認できるはずです。

heiyelurenheiyeluren サポートが有効になりました
(図 07)

関数が存在するかどうかを確認して呼び出し、Web ディレクトリに作成します: heiyeluren.php


echo "

";<br>print_r(get_loaded_extensions( )) ;<br>print_r(get_extension_funcs('heiyeluren'));<br>echo heiyeluren_test('初めての php 拡張機能');<br>echo "
";
?>
Apache にアクセスすると、次の内容が表示されるはずです:

Array(
...
[33] => heiyeluren
)
Array
(
[0] =>confirm_heiyeluren_compiled
[1] => heiyeluren_test
)
入力文字列: heiyeluren

(図 08)

拡張子の作成に成功しました!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。