Heim > Artikel > Backend-Entwicklung > Wie rufe ich die C-Methode in PHP auf?
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 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['a']) && isset($_POST['b']) && !empty($_POST['a']) && !empty($_POST['b'])) { $command = './test '.$_POST['a'].' '.$_POST['b']; $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ßenpassthru
Testergebnisse:
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!