Comment PHP appelle la méthode c : écrivez d'abord un fichier source [test.c] ; puis enregistrez-le et effectuez la compilation ; puis le code du gestionnaire PHP [add.php] enfin dans [add.php] ; exécutez la commande dans la ligne de commande directement via passthru pour terminer l'appel.
Comment PHP appelle la méthode c :
Il existe de nombreuses façons pour PHP d'appeler c/c++, la plus ceux couramment utilisés sont appelés via TCP ou http, ils sont implémentés en envoyant une requête d'appel à cgi/fastcgi écrite en c/c++. De plus, php a un moyen d'exécuter directement des applications externes. Cette méthode affectera la sécurité du système et peut être. facilement exploitable par les attaquants. , alors soyez prudent lorsque vous l'utilisez et gérez les entrées de l'utilisateur
PHP a plusieurs fonctions pour exécuter des commandes binaires externes, telles que exec et passthru, et la fonction passthru peut exécuter des commandes et renvoyer la sortie de commandes externes, donc cette fois, utilisez simplement passthru pour y parvenir. Le but de l'appel de fonctions c/c++ par PHP est d'améliorer l'efficacité des calculs lors du traitement de calculs complexes, améliorant ainsi les performances globales du système
Écrivez d'abord un fichier source, le traitement est très simple, il suffit d'ajouter deux entiers, le code est le suivant : test.c
#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; }
Après compilation, le fichier exécutable de test sera généré dans le répertoire courant, passez gcc test.c -o test
Vous pouvez exécuter le fichier pour voir le résultat 17 ./test 5 12
<!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>
code : add.php
<?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 "输入不能为空!"; } ?>
Exécutez directement la commande dans la ligne de commande pour terminer l'appelpassthru
Recommandations d'apprentissage associées :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!