So initialisieren Sie die PHP-Erweiterung: Ändern Sie zuerst die Prototyp-Deklaration in der Nähe der User-Space-Funktion in [php_hello.h], ändern Sie dann die Datei [hello.c] und fügen Sie dann oben ein [#] hinzu Datei [hello.c] include]; schließlich [hello_world] ändern, um den Wert von INI zu verwenden.
So initialisieren Sie die Erweiterung in PHP:
Initialisieren Sie die Erweiterungskonfiguration über php.ini
Die Zend-Engine bietet zwei Möglichkeiten, INI-Werte zu verwalten.
Angenommen, Sie möchten in php.ini einen Wert für Ihre Erweiterung hello.greeting
definieren, der die Begrüßungszeichenfolge enthält, die in der Funktion hell_world()
verwendet wird. Sie müssen Code zu hello.c
und php_hello.h
hinzufügen und einige wichtige Änderungen an der hell_module_entry
-Struktur vornehmen.
Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Beherrschung
Schritt 1: Ändern Sie php_hello.h
in der Nähe des User-Space-Funktionsprototyps Deklaration
PHP_MINIT_FUNCTION(hello); PHP_MSHUTDOWN_FUNCTION(hello);// 初始化关键点 PHP_FUNCTION(hello_world);// 其它通用 PHP_FUNCTION(hello_long);
2. Schritt 2: Ändern Sie die hello.c
-Datei
, um das hello_module_entry
in der aktuellen Version zu entfernen und es durch die folgende Liste zu ersetzen:
zend_module_entry hello_module_entry = { #if ZEND_MODULE_API_NO >= 20010901 STRANDARD_MODULE_HEADER, #endif PHP_HELLO_WORLD_EXTENAME, hello_functions, PHP_MINIT(hello), PHP_MSHUTDOWN(hello), NULL,NULL,NULL, #if ZEND_MODULE_API_NO >= 20010901 PHP_HELLO_WORLD_VERSION, #endif STANDARD_MODULE_PROERTIES } PHP_INI_BEGIN() PHP_INI_ENTRY("hello.greeting","hello world",PHP_INI_ALL,NULL) PHP_INI_END() PHP_MINIT_FUNCTION(hello) { REGISTER_INI_ENTRIES(); return SUCCESS; } PHP_MSHUTDOWN_FUNCTION(hello) { UNREGISTER_INI_ENTRIES(); return SUCCESS; }
3. Jetzt müssen Sie nur noch ein hello.c
daneben #include
oben in der Datei #include
hinzufügen, damit die richtige Header-Datei vorhanden ist, die INI unterstützt kann aktiviert werden:
#ifdef HAVE_CONFIG_H #include "config.h" #endif #include "php.h" #include "php_ini.h" #include "php_hello.h"
4. Abschließend können Sie hello_world
ändern, um den Wert von INI
zu verwenden:
PHP_FUNCTION(hello_world) { RETURN_STRING(INI_STR("hello.greeting"),1); }
ABER: Sie müssen den von INI_STR()
zurückgegebenen Wert kopieren. Dies liegt daran, dass es sich vor der Eingabe in den PHP-Variablenstapel um eine statische Zeichenfolge handelt. Wenn Sie versuchen, die zurückgegebene Zeichenfolge zu ändern, wird die PHP-Ausführungsumgebung tatsächlich instabil oder stürzt sogar ab.
Zusammenfassung:
verwendet tatsächlich INI_STR()
, um die aktuelle Zeichenfolge des hello.greeting
-Eintrags abzurufen.
Wenn Sie andere Parameter erhalten möchten, können Sie etwas wie INI_INT
usw. verwenden. Da die Parameter unterschiedlich eingestellt sind, sind Funktionen wie ini_set
nicht einfach zu verwenden.
Das obige ist der detaillierte Inhalt vonWie initialisiere ich Erweiterungen in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!