ホームページ > バックエンド開発 > PHPの問題 > PHPでCメソッドを呼び出す方法

PHPでCメソッドを呼び出す方法

coldplay.xixi
リリース: 2023-03-03 17:42:02
オリジナル
5107 人が閲覧しました

php で c メソッドを呼び出す方法: 最初に [test.c] ソース ファイルを作成し、次にそれを保存してコンパイルを実行し、次に php ハンドラー [add.php] コードを記述し、最後に [add.php] に記述します。コマンドラインでパススルー経由でコマンドを直接実行し、呼び出しを完了します。

PHPでCメソッドを呼び出す方法

php が c メソッドを呼び出す方法:

php が c/c を呼び出す方法はたくさんあります。一般的に使用されるのは、tcp または http 経由で呼び出され、c/c で記述された cgi/fastcgi を呼び出すリクエストを送信することで実装されます。また、php には外部アプリケーションを直接実行する方法があり、この方法はシステムのセキュリティに影響を及ぼし、簡単に実行できます。攻撃者によって悪用される可能性があるため、使用する場合はユーザー入力を慎重に処理する必要があります

PHP には、exec や passthru など、外部バイナリ コマンドを実行するための関数がいくつかあり、passthru 関数はコマンドを実行して出力を返すことができます。外部コマンドなので、今回はパススルーを使用するだけで実現できます。PHP が c/c 関数を呼び出す目的は、複雑な計算を処理する際の計算効率を向上させ、システム全体のパフォーマンスを向上させることです。以下は簡単なテスト ケースです。

まず、test .c ソース ファイルを作成します。処理は非常に簡単です。2 つの整数を追加するだけです。コードは次のとおりです:

#include<stdio.h>
int main(int argc, char **argv) {
    //printf("参数个数:%d\n", argc-1);
    int a = atol(argv[1]);
    int b = atol(argv[2]);
    int sum = a + b;
    printf("%d\n", sum);
    return 0;
}
ログイン後にコピー

保存後、コンパイルを実行します: gcc test.c -o test コンパイル後、テスト実行可能ファイルが現在のディレクトリに生成されます。 ./test 5 12 を通じてファイルを実行すると、出力 17

## が表示されます。 # そして、フォームと php コードを記述します。簡単にするために、現在のディレクトリは web です。ルート ディレクトリにアクセスするには、実際に C/C プロジェクトを Web アクセス ディレクトリの外に置き、php の絶対パスを使用して

を呼び出します。

form.html コード:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php调用c/c++案例</title>
</head>
<body>
    <form method="post" action="add.php">
        <div>
            请输入两个整数:
            <input type="text" name="a" />
            +
            <input type="text" name="b" />
            <input type="submit" value="相加" />
        </div>
    </form>
</body>
</html>
ログイン後にコピー

php handler

add.php コード:

<?php
header("Content-Type:text/html; charset=utf-8");
if(isset($_POST[&#39;a&#39;]) && isset($_POST[&#39;b&#39;]) && !empty($_POST[&#39;a&#39;]) && !empty($_POST[&#39;b&#39;])) {
    $command = &#39;./test &#39;.$_POST[&#39;a&#39;].&#39; &#39;.$_POST[&#39;b&#39;];
    $result = passthru($command);
    print_r($result);
} else {
    echo "输入不能为空!";
}
?>
ログイン後にコピー
add.php では、呼び出しが次のように完了していることがわかります。

パススルー

を通じてコマンドラインでコマンドを直接実行する テスト結果:


PHPでCメソッドを呼び出す方法

PHPでCメソッドを呼び出す方法

##関連する学習に関する推奨事項:
php グラフィック チュートリアル


以上がPHPでCメソッドを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート