Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

C vers PHP

11 réponses
Avatar
nORKy
Bonjour,

Je voudrais faire une passerelle C vers PHP. Pour réaliser un module
pour freeRadius.
savez-vous comment faire ? Ou trouver une doc ?
Ce que je voudrais faire précisément, c'est, depuis mon code C,
charger un fichier contenant une classe X, et pouvoir appelé une
fonction de cette classe.

Merci

10 réponses

1 2
Avatar
Mickael Wolff
nORKy a écrit :

Je voudrais faire une passerelle C vers PHP. Pour réaliser un module
pour freeRadius.
savez-vous comment faire ? Ou trouver une doc ?



Il faut regarder dans le source de PHP. Regardes comment le module
DOMDocument est fait, ça te donneras une bonne idée de ce que tu peux faire.

Ce que je voudrais faire précisément, c'est, depuis mon code C,
charger un fichier contenant une classe X, et pouvoir appelé une
fonction de cette classe.



Tu veux aussi accéder à des fonctionnalités de PHP dans ton module C,
c'est ça ?

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
nORKy
On 26 juin, 17:27, Mickael Wolff wrote:
nORKy a écrit :

> Je voudrais faire une passerelle C vers PHP. Pour réaliser un module
> pour freeRadius.
> savez-vous comment faire ? Ou trouver une doc ?

  Il faut regarder dans le source de PHP. Regardes comment le module
DOMDocument est fait, ça te donneras une bonne idée de ce que tu peux faire.

> Ce que je voudrais faire précisément, c'est, depuis mon code C,
> charger un fichier contenant une classe X, et pouvoir appelé une
> fonction de cette classe.

  Tu veux aussi accéder à des fonctionnalités de PHP dans ton module C,
c'est ça ?

--
Mickaël Wolff aka Lupus Michaelishttp://lupusmic.org



On peut dire ca.
En fait, j'ai une application PHP/Mysql.
J'ajoute à ce projet un FreeRadius/802.1x.
Le but est de pouvoir utiliser des routines PHP (que j'ai codé moi et
utilise déjà dans mon application PHP) pour identifier et autorisés
des utilisateurs s'identifiant en 802.1x à travers un freeRadius.

Donc, tant qu'a faire, j'aurais voulu codé un module pour freeradius
'générique'.
J'aimerais donc en C :
- Chargé un fichier .php (une sorte de include PHP)
- appelé une fonction d'une classe (qui a été chargé par le fichier au
point précédant).
- et récupérer biensur la valeur de retour de la fonction
Avatar
Antoine Polatouche
nORKy a écrit :

En fait, j'ai une application PHP/Mysql.
J'ajoute à ce projet un FreeRadius/802.1x.
Le but est de pouvoir utiliser des routines PHP (que j'ai codé moi et
utilise déjà dans mon application PHP) pour identifier et autorisés
des utilisateurs s'identifiant en 802.1x à travers un freeRadius.

Donc, tant qu'a faire, j'aurais voulu codé un module pour freeradius
'générique'.
J'aimerais donc en C :
- Chargé un fichier .php (une sorte de include PHP)
- appelé une fonction d'une classe (qui a été chargé par le fichier au
point précédant).
- et récupérer biensur la valeur de retour de la fonction



Et executer un script php depuis le code C en lançant php.exe ou en
utilisant un serveur http local, tu n'as pas la possibilité ?
Avatar
nORKy
On 27 juin, 18:18, Antoine Polatouche wrote:
nORKy a écrit :

> En fait, j'ai une application PHP/Mysql.
> J'ajoute à ce projet un FreeRadius/802.1x.
> Le but est de pouvoir utiliser des routines PHP (que j'ai codé moi et
> utilise déjà dans mon application PHP) pour identifier et autorisés
> des utilisateurs s'identifiant en 802.1x à travers un freeRadius.

> Donc, tant qu'a faire, j'aurais voulu codé un module pour freeradius
> 'générique'.
> J'aimerais donc en C :
> - Chargé un fichier .php (une sorte de include PHP)
> - appelé une fonction d'une classe (qui a été chargé par le fichier au
> point précédant).
> - et récupérer biensur la valeur de retour de la fonction

Et executer un script php depuis le code C en lançant php.exe ou en
utilisant un serveur http local, tu n'as pas la possibilité ?




Si, c'est possible.
Mais justement, le but était de ne pas faire un appel système à une
fonction de type execv..
Avatar
Antoine Polatouche
nORKy a écrit :
On 27 juin, 18:18, Antoine Polatouche wrote:
Et executer un script php depuis le code C en lançant php.exe ou en
utilisant un serveur http local, tu n'as pas la possibilité ?




Si, c'est possible.
Mais justement, le but était de ne pas faire un appel système à une
fonction de type execv..



Avec un serveur local, il n'y a pas besoin de faire un appel à execv,
juste ouvrir une URL servie par un script php...
Avatar
Mickael Wolff
Antoine Polatouche a écrit :

Avec un serveur local, il n'y a pas besoin de faire un appel à execv,
juste ouvrir une URL servie par un script php...



C'est tout de suite plus léger, effectivement. </ironie>

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
nORKy
On 1 juil, 10:08, Antoine Polatouche wrote:
nORKy a écrit :

> On 27 juin, 18:18, Antoine Polatouche wrote:
>> Et executer un script php depuis le code C en lançant php.exe ou en
>> utilisant un serveur http local, tu n'as pas la possibilité ?

> Si, c'est possible.
> Mais justement, le but était de ne pas faire un appel système à une
> fonction de type execv..

Avec un serveur local, il n'y a pas besoin de faire un appel à execv,
juste ouvrir une URL servie par un script php...



euh oui... je fais du C unix.
Pour ouvrir une url, il faut faire des sockets.
Mais si c'est pour faire ca, autant faire un execv (comme le souligne
l'ironie de Mickel)
Avatar
Bruno Baguette
nORKy a écrit :
Bonjour,

Je voudrais faire une passerelle C vers PHP. Pour réaliser un module
pour freeRadius.
savez-vous comment faire ? Ou trouver une doc ?
Ce que je voudrais faire précisément, c'est, depuis mon code C,
charger un fichier contenant une classe X, et pouvoir appelé une
fonction de cette classe.

Merci



Bonjour !

J'ai du me documenter (en vitesse) récemment pour un client qui a un
projet de ce genre dans l'air, mais dans le sens inverse : Une GUI PHP
pour exécuter certaines opérations sur une application C tournant sur un
mainframe.

J'étais tombé là dessus : <http://gsoap2.sourceforge.net/>

Le site a l'air assez vieux, mais la documentation est (je viens d'y
retourner) mise à jour assez régulièrement.

En espérant que ca aide ! :-)

--
Bruno Baguette
Avatar
Antoine Polatouche
nORKy a écrit :
euh oui... je fais du C unix.
Pour ouvrir une url, il faut faire des sockets.
Mais si c'est pour faire ca, autant faire un execv (comme le souligne
l'ironie de Mickel)



Tout à fait d'accord avec ça, mais c'est toi qui disais:
Mais justement, le but était de ne pas faire un appel système à une
fonction de type execv..



Si le "but" change, les réponses doivent changer également ;-)

Pour conclure, si tu peux faire des execv, c'est très certainement la
solution la plus simple!
Avatar
BertrandB
nORKy a écrit :

euh oui... je fais du C unix.
Pour ouvrir une url, il faut faire des sockets.
Mais si c'est pour faire ca, autant faire un execv (comme le souligne
l'ironie de Mickel)


avec libcurl on peut éviter cette complexité.
1 2