JeuWeb - Crée ton jeu par navigateur
Passer un tableau PHP vers une fonction C - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Passer un tableau PHP vers une fonction C (/showthread.php?tid=6427)

Pages : 1 2


Passer un tableau PHP vers une fonction C - xepos - 04-10-2012

Bonjour,

Je viens vers vous pour avoir un petit coups de pouce sur un problème ou je bloque depuis quelque jours.

Je souhaiterais savoir si c'est possible de faire transmettre un tableau PHP vers une fonction en C pour pouvoir par la suite l'utiliser.

Tableau à faire transmettre au programme C:
Code PHP :
<?php 
$Attaquant
= Array( 104 => 1, 105 => 1, 106 => 1 );

Merci d'avance pour votre aide.

Cordialement,


RE: Petite question. - Sephi-Chan - 04-10-2012

Hello. Renomme ton sujet pour être en adéquation avec ta demande. Smile


RE: Tableau PHP vers une fonction C. - xepos - 04-10-2012

Voila c'est fait.


RE: Tableau PHP vers une fonction C. - Sephi-Chan - 04-10-2012

Impec, merci ! Comme ça les gens voient d'un coup d'œil si le sujet les intéresse savent à quoi s'attendre. Smile

Sais-tu comment appeler une fonction C dans un programme PHP ?


RE: Tableau PHP vers une fonction C. - xepos - 04-10-2012

Je pensais utiliser la fonction Exec.
Qu'en pense tu ?

J'ai réussi à récupérer paramètre par paramètre, mais pour les tableaux je suis complètement bloqué.


RE: Tableau PHP vers une fonction C. - Ter Rowan - 04-10-2012

je maitrise pas coté sécurité mais si tu fais exec et que tu sérialize le tableau coté php (donc un paramètre) et que tu le désérialize côté c ?


RE: Tableau PHP vers une fonction C. - xepos - 04-10-2012

Oui mais désérialize de quelle manière ?


RE: Tableau PHP vers une fonction C. - Sephi-Chan - 04-10-2012

Je ne vois pas trop en quoi une déserialisation pourrait aider dans la mesure où C ne dispose pas nativement de hash (même si les stucture s'en approchent).

Par pure curiosité, pourquoi as-tu besoin de faire ça ?


RE: Tableau PHP vers une fonction C. - xepos - 04-10-2012

C'est pour mon moteur de combat car celui-ci est très lent en exécution.


RE: Passer un tableau PHP vers une fonction C - Xenos - 04-10-2012

Je n'ai jamais mis les pieds là dedans, mais si je devais passer par là, j'essayerai 2 solutions:
- Passer le tableau en argument au programme, sous la forme argN = index du tableau (char[]) si N impair, = valeur à l'index si N pair (dans le cas cité, ca serait les arguments "104, 1, 105, 1, 106, 1" à passer, sous forme de char[], donc du "104", "1", "105", "1", "106", "1"); ensuite, dans le C, récupérer ces arguments et reconstruire le tableau (map ou vector). Si le tableau est trop gros, c'est difficilement faisable.
- Exporter le contenu du tableau dans un fichier, binaire ou texte, et passer le chemin de ce fichier en argument au programme C. En ce cas, un système du genre, pour chaque ligne, "index = valeur" pourrait être suffisant. Dans le C, il suffirait alors de lire ce fichier (un fstream je crois... ou fopen, tout dépend si c'est C ou C++)

Mais ce qui me semble surprenant, c'est que ton système de combat soit lourd. Je pense que le plus efficace serait que tu vérifie s'il n'existe pas des techniques mathématiques plus appropriées et performantes (si ton système est de type Eulérien, aka pour calculer l'état N+K de ton système, tu passe par N, N+1, N+2...N+K, alors ton système est effectivement lourd, mais il peut exister une méthode non-eulérienne bien plus efficace passant directement de N à N+K).