Interractions PHP et C

Mammouth du PHP | 514 Messages

17 oct. 2007, 10:51

Bonjour,

je souhaiterais savoir comment obtenir des interractions entre PHP et C.

Je m'explique :

Pour un projet, je dois effectuer quelques pings sur un parc informatique, obtenir la liste des postes actifs, consulter diverses informations matérielles.

Afin d'optimiser tout ça, je souhaiterais lancer quelques fonctions ou fichiers écrits avec C, et renvoyer le résultat à PHP.

Merci de votre aide.

ViPHP
fab
ViPHP | 2657 Messages

17 oct. 2007, 11:07

Avec php tu peux executer un programme et en afficher le résultat grâce à la fonction passthru()

Ce qui revient à executer le programme dans un terminal :) donc je pense que c'est ce que tu veux faire :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

ViPHP
ViPHP | 5924 Messages

17 oct. 2007, 11:12

Tu dois écrire des modules pour php. Les modules ce sont les modules GD, GetText, et autres PDO, qui ne font pas partie du coeur de PHP mais qui ont été écrites à part, en C, pour par exemple faire le lien entre des librairies et les applications php. Ils suivent des règles précises d'écriture pour s'intégrer correctement à PHP. Et ils s'intègrent en recompilant php.
Tu trouveras plus d'informations sur PHP.net ou Zend.com

ViPHP
ViPHP | 2287 Messages

17 oct. 2007, 11:22

Fais ton choix camarade :D

En effet, l'une ou l'autre des approches suggérées par fab et Sekiltoyai sont bonnes, suivant tes besoins. Si tu as besoin d'interactions complexes entre ta partie C et ta partie PHP, le développement d'un module sera tout indiqué. Sinon, si les tâches à accomplir en C sont bien découpées et les valeurs de retours simples (ou simplifiables) un simple lancement de processus via shell fera amplement l'affaire (et sera sans doute plus simple et plus rapide à mettre en oeuvre).
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Mammouth du PHP | 514 Messages

18 oct. 2007, 13:03

Merci de votre aide,

je me tourne vers ces deux possibilités, et je vais essayer de voir ce qui convient le mieux.

:d