Heim  >  Artikel  >  Backend-Entwicklung  >  Wie rufe ich die C-Methode in PHP auf?

Wie rufe ich die C-Methode in PHP auf?

coldplay.xixi
coldplay.xixiOriginal
2020-08-03 10:20:025051Durchsuche

Wie PHP die C-Methode aufruft: Schreiben Sie zuerst eine [test.c]-Quelldatei und führen Sie dann die Kompilierung durch, schließlich den PHP-Handler-Code in [add.php]. Führen Sie den Befehl in der Befehlszeile direkt über Passthru aus, um den Anruf abzuschließen.

Wie rufe ich die C-Methode in PHP auf?

Wie PHP die c-Methode aufruft:

Es gibt viele Möglichkeiten für PHP, c/c++ aufzurufen, am häufigsten Häufig verwendete Methoden werden über TCP oder http aufgerufen. Die Implementierung erfolgt durch Senden einer in c/c++ geschriebenen Anforderung zum Aufrufen von cgi/fastcgi. Darüber hinaus verfügt PHP über eine Möglichkeit, externe Anwendungen direkt auszuführen kann von Angreifern ausgenutzt werden, daher muss bei der Verwendung mit Benutzereingaben vorsichtig umgegangen werden

PHP verfügt über mehrere Funktionen zum Ausführen externer Binärbefehle, wie z. B. exec und passhru, und die passhru-Funktion kann Befehle ausführen und die Ausgabe von zurückgeben Externe Befehle, also dieses Mal Verwenden Sie einfach Durchgang, um dies zu erreichen. Der Zweck des PHP-Aufrufs von C/C++-Funktionen besteht darin, die Berechnungseffizienz bei der Verarbeitung komplexer Berechnungen zu verbessern und dadurch die Gesamtsystemleistung zu verbessern >Schreiben Sie zuerst eine

Quelldatei, die Verarbeitung ist sehr einfach, fügen Sie einfach zwei Ganzzahlen hinzu, der Code lautet wie folgt:

#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;
}
test.c Führen Sie nach dem Speichern die Kompilierung aus:

Nach der Kompilierung die ausführbare Testdatei wird im aktuellen Verzeichnis generiert, übergeben Sie

Sie können die Datei ausführen, um die Ausgabe 17 anzuzeigengcc test.c -o test ./test 5 12 und dann das Formular und den PHP-Code schreiben. Der Einfachheit halber ist das aktuelle Verzeichnis das Stammverzeichnis für den Webzugriff. In der Praxis muss das C/C++-Projekt außerhalb des Webzugriffsverzeichnisses in PHP platziert werden. Verwenden Sie den absoluten Pfad zum Aufruf von

form form.html-Code:

<!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

-Code:

<?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 Es ist ersichtlich, dass es in add.php übergeben wird

Führen Sie den Befehl direkt in der Befehlszeile aus, um den Aufruf abzuschließen

passthru
Testergebnisse:


Wie rufe ich die C-Methode in PHP auf?

Wie rufe ich die C-Methode in PHP auf?

Verwandte Lernempfehlungen:
PHP-Grafik-Tutorial


Das obige ist der detaillierte Inhalt vonWie rufe ich die C-Methode in PHP auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn