Librairie

cs_badsha Messages postés 64 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 8 mai 2013 - 5 juin 2011 à 02:40
cs_badsha Messages postés 64 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 8 mai 2013 - 8 juin 2011 à 16:30
bonjour,

je viens de créer une libraire hello.so (je suis sous linux) qui affiche !hello world! , je veux préciser que dans cette libraire existe une fonction qui s'appelle test et c'est elle qui affiche !hello world!

comment je peux integrer cette libraire en php afin d'afficher !hello world!

11 réponses

cs_badsha Messages postés 64 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 8 mai 2013
6 juin 2011 à 00:39
????????????????????????????????????????????????????????????????????????????????????????????????????????????
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
6 juin 2011 à 10:36
Bonjour,

il te suffit d'aller dans php.ini et de lui dire de charger la lib (ca se fait comme la lib GD ou toute autre lib), ensuite, tu n'auras qu'a appeller ta fonction.

la doc est bien remplie sur php.net

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0
cs_badsha Messages postés 64 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 8 mai 2013
6 juin 2011 à 11:55
oui j'ai deja ecris hello.so dans php.ini
es que je dois faire appel a hello.so dans mon fichier php(comme en C, on fait #include...).

dans le fichier php je met
<?php

test(); /* c'est la fonction de la librairie hello.so */
?>
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
6 juin 2011 à 12:12
non, si tu fais #include ... ca ne marchera pas ...


quand tu appelles test(); ca fait quoi ?

si ca ne fonctionne pas, c'est que t'as pas fait ta fonction "test" correctement, ton .so doit déclarer à php des fonctions accessibles
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_badsha Messages postés 64 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 8 mai 2013
8 juin 2011 à 15:07
quand j'ai créé la lib hello.so ,j'ai ajouté dans php.ini: extension=hello.so , j'ai tapé en ligne de commande:
php -d extension=hello.so -r "test();"
et ca ma fiche: hello world

mais quand jai créé un fichier php..
<?php
test(); /* c'est la fonction de la librairie hello.so */
?>

cela ne marche pas. je travaille avec le serveur local: lampp
peut être ya un probleme de chemin vers hello.so malgré que celle-ci marche en ligne de commande?
merci à vous
0
cs_badsha Messages postés 64 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 8 mai 2013
8 juin 2011 à 15:15
normalement lampp (serveur local) fait le lien tout seul avec php.ini? (lisez le message précédent)
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 juin 2011 à 15:20
Bonjour,

le fichier php.ini est différent pour la console et le serveur web :

pour la console, il est dans /etc/php5/cli/php.ini
pour apache, il est dans /etc/php5/apache2/php.ini
0
cs_badsha Messages postés 64 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 8 mai 2013
8 juin 2011 à 15:43
si j'écris : extension=hello.s dans php.ini de celui d'apache, il trouvera lui meme le chemin de l'extension hello.so?
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 juin 2011 à 15:59
non.

lis la doc.
0
cs_badsha Messages postés 64 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 8 mai 2013
8 juin 2011 à 16:04
ou je dois mettre ma librairie hello.so?
dans "lib" de lampp ensuite ajouter hello.so dans php.ini de lampp
0
cs_badsha Messages postés 64 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 8 mai 2013
8 juin 2011 à 16:30
normalement quand j'ai créé ma lib j'ai fait : make install (en ligne de commande sous mon répertoire de travail)
0
Rejoignez-nous