Maison >développement back-end >Problème PHP >Comment appeler la méthode C en php

Comment appeler la méthode C en php

coldplay.xixi
coldplay.xixioriginal
2020-08-03 10:20:025100parcourir

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 appeler la méthode C en php

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 sauvegarde, exécutez la compilation :

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

puis écrire le formulaire et le code php Pour plus de simplicité, le répertoire courant est le répertoire racine d'accès Web. En pratique, le projet C/C++ doit être placé en dehors du répertoire d'accès web, dans php Utiliser le chemin absolu pour appeler le

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 : 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 "输入不能为空!";
}
?>

On voit que dans add.php, il est passé

Exécutez directement la commande dans la ligne de commande pour terminer l'appelpassthru

Résultats du test :


Comment appeler la méthode C en php

Comment appeler la méthode C en php

Recommandations d'apprentissage associées :

Tutoriel graphique PHP

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn