Maison >développement back-end >tutoriel php >Explication détaillée de la façon d'utiliser la bibliothèque lib en PHP7 basée sur les fonctions
Cet article présente principalement la méthode d'utilisation de la bibliothèque lib basée sur les fonctions de développement d'extensions PHP7. Il analyse les compétences d'encapsulation et d'opération d'appel de l'extension de bibliothèque lib en PHP7 sous forme d'exemples. J'espère que cela pourra aider tout le monde.
Préface
Tout d'abord, parlons de ce qu'est une bibliothèque lib. Une bibliothèque lib est un fichier qui fournit des fonctions spécifiques. Il peut être considéré comme un fichier en PHP, qui fournit certaines méthodes fonctionnelles. C'est juste que cette bibliothèque lib est écrite en c ou c++.
Scénarios utilisant la bibliothèque lib. Certains logiciels fournissent déjà des bibliothèques lib, nous n'avons donc pas besoin de les implémenter à nouveau. Par exemple, l'extension mysql d'origine est encapsulée à l'aide de la bibliothèque officielle mysql lib.
Dans cet article, nous allons construire une bibliothèque lib simple et effectuer des appels encapsulés dans l'extension.
Code
Code de base
Cette extension, nous ajouterons . Veuillez lire cet article de blog pour le code lié à l'extension, par exemple. Développement d'extension PHP7 hello word Cet article a présenté en détail comment créer une extension et fourni le téléchargement du code source. call_lib_fun()
Implémentation du code
Build lib library
Ajouter le fichier hello.h. Le code est le suivant :#ifndef TEST_HEADER_FILE #define TEST_HEADER_FILE #include <stdlib.h> #include <string.h> char * show_site(); #endifAjouter le fichier hello.c. Le code est le suivant :
#include "hello.h" char * show_site() { char *site = malloc(15 * sizeof(char)); strcpy(site, "www.bo56.com"); return site; }Utilisez ensuite la commande suivante pour générer le fichier lib library (bibliothèque dynamique) :
$ gcc -g -O0 -fPIC -shared -o hello.so ./hello.cCela générera un fichier de bibliothèque dynamique hello.so dans le répertoire courant. Les extensions des bibliothèques dynamiques dans différents systèmes d'exploitation peuvent être différentes. Par exemple, c'est dll sous windows, dylib sous mac, et donc sous linux. Ensuite, copiez
hello.so dans le répertoire /usr/local/lib/ et nommez-le hello.so
hello.h est copié dans le répertoire /usr/local/include/.
Modifier le fichier config.m4
Augmenter la dépendance de l'extension à la bibliothèque dynamique. Ajoutez principalement les lignes de code suivantes :PHP_ADD_LIBRARY_WITH_PATH(hello, /usr/local/lib/, SAY_SHARED_LIBADD) PHP_SUBST(SAY_SHARED_LIBADD)
Écrivez le code d'extension
Ajoutez une référence à. hello.h
#include "php_say.h" #include <stdio.h> //下面这行是增加的 #include "hello.h"Ajout de la méthode
. Le code est le suivant : show_site()
PHP_FUNCTION(show_site) { char *site = show_site(); RETVAL_STRING(site); free(site); return; }
résultat de l'appel php
<?php $result = show_site(); var_dump($result); ?>résultat de l'exécution
$php ./test.php string(12) "www.bo56.com"
Interprétation du code
PHP_ADD_LIBRARY_WITH_PATH est utilisé pour spécifier le nom, l'adresse et d'autres informations de la bibliothèque bibliothèque. Le premier paramètre est le nom et le deuxième paramètre est l'adresse. Ajoutez le fichier d'en-tête de la bibliothèque lib au fichier say.c. Utilisez. #include "hello.h"
Gestion des cookies en Python (2) bibliothèque cookielib
Comment utiliser la bibliothèque pdflib pour lire des fichiers pdf Contenu
Utilisez la bibliothèque urllib de Python pour soumettre des formulaires WEB
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!