und die vorherigen 1 Wie die superglobalen Variablen und persistenten Konstanten, die Sie in Kapitel 1 gesehen haben, müssen php.ini-Werte im erweiterten MINIT-Block definiert werden. Im Gegensatz zu anderen Funktionen besteht die Definition von INI-Optionen jedoch nur aus einfachen Start-/Stoppzeilen.
Der INI-Befehl selbst befindet sich über der MINIT-Funktion in der Quelle Codedatei, die völlig unabhängig mithilfe der folgenden Makros definiert wird. Zwischen diesen beiden Makros können eine oder mehrere INI-Anweisungen definiert werden:
PHP_INI_BEIGN()
PHP_INI_END()
Nach dem Login kopieren
Diese beiden Makrofunktionen ähneln ZEND_BEGIN_MODULE_GLOBALS()/ZEND_END_MODULE_GLOBALS(). Hierbei handelt es sich jedoch nicht um eine Typdef-Struktur, sondern um eine Rahmenorganisation für die Definition statischer Dateninstanzen:
Wie Sie sehen können, definiert es einen Vektor von zend_ini_entry-Werten, der mit einem leeren Datensatz endet Sie würden Die zuvor gesehene Definition des statischen Vektors function_entry ist konsistent.
Einfache INI-Einstellungen
Nun, Sie Es gibt eine INI-Struktur zum Definieren von INI-Anweisungen sowie den Mechanismus für die Engine zum Registrieren/Deinstallieren von INI-Einstellungen, sodass wir tatsächlich einige INI-Anweisungen für Ihre Erweiterung definieren können. Angenommen, Ihre Erweiterung stellt eine Begrüßungsfunktion bereit, z. B. „Same as“. in Kapitel 5 „Ihre erste Erweiterung“ können Sie diese jedoch anpassen, wenn Sie Hallo sagen möchten:
Sie können Sie haben Wie Sie es erraten haben, repräsentieren die ersten beiden Parameter dieses Makros den Namen des INI-Befehls und seinen Standardwert. Der dritte Parameter wird verwendet, um zu bestimmen, ob die Engine die Änderung des INI-Befehls zulässt (dies betrifft das später eingeführte Problem mit der Zugriffsebene). Der letzte Parameter ist eine Callback-Funktion, die jedes Mal aufgerufen wird, wenn sich der Wert der INI-Anweisung ändert. Die Details zu diesem Parameter finden Sie im Abschnitt „Ereignisse ändern“. > Übersetzungshinweis: Wenn Sie, wie der Übersetzer, auf Ergebnisse stoßen, die nicht mit den erwarteten Ergebnissen der Originalarbeit übereinstimmen, fügen Sie bitte während des Tests einen „REGISTER_INI_ENTRIES();“-Aufruf zu Ihrer MINIT()-Funktion hinzu und stellen Sie sicher, dass dies der Fall ist dass sich der Aufruf in Ihrem Execute befindet, nachdem Sie globalen Speicherplatz in MINIT zugewiesen haben.
Nachdem Ihre INI-Einstellungen definiert wurden, müssen Sie sie nur noch in Ihrer Begrüßungsfunktion verwenden.
Beachten Sie unbedingt, dass der Wert von char * der Engine gehört und nicht geändert werden darf. Definieren Sie daher Ihre lokale Variable, die zum vorübergehenden Speichern der INI-Einstellung verwendet wird Wert als const geändert. Natürlich sind nicht alle INI-Werte Strings; es gibt andere Makros zum Abrufen von Ganzzahl-, Gleitkomma- und Booleschen Werten:
Normalerweise möchten Sie den aktuellen Wert der INI-Einstellung wissen. Als Ergänzung gibt es jedoch mehrere Makros, mit denen Sie den unveränderten Wert der INI lesen können Einstellung:
In diesem Beispiel wird dem Namen der INI-Anweisung „sample4.greeting“ eine Erweiterung vorangestellt, um sicherzustellen, dass es nicht zu Konflikten mit den INI-Anweisungsnamen kommt, die von anderen Erweiterungen bereitgestellt werden. Dieses Präfix ist nicht erforderlich, wird aber für öffentliche Erweiterungen für kommerzielle oder Open-Source-Veröffentlichungen empfohlen
Zugriffsebene
Für INI-Anweisungen gibt es immer einen Standardwert. In den meisten Fällen ist es jedoch ideal, den Standardwert unverändert zu lassen, für einige besondere Umstände oder bestimmte Aktionen innerhalb des Skripts kann geändert werden. Wie in der folgenden Tabelle gezeigt, kann der Wert der INI-Anweisung an den folgenden drei Punkten geändert werden:
Zugriffsebene
Bedeutung
SYSTEM
befindet sich in php.ini , oder Apaches httpd.conf Konfigurationsdatei und Direktiven extern, beeinflussen die Startphase des Motors, kann als INI gesetzt"<🎜 betrachtet werden >global"Wert.
PERDIR
befindet sich in der Konfigurationsdatei httpd.conf von Apache > und Direktive , oder fordern Sie das Verzeichnis an bzw virtuelles Verzeichnis, in dem sich das Skript befindet .htaccess Dateien unter dem Host und andere ApacheINI vor der Verarbeitung der Anfrage an anderer Stelle festlegen >BEFEHL.
USER
Sobald das Skript mit der Ausführung beginnt, kann nur geändert werden durch Aufrufen der User-Space-Funktion ini_set( )INI setzt .
int php_sample4_modify_greeting(zend_ini_entry *entry,
char *new_value, uint new_value_length,
void *mh_arg1, void *mh_arg2, void *mh_arg3,
int stage TSRMLS_DC);
Nach dem Login kopieren
各个参数的含义见下表:
参数名
含义
entry
zeigt auf das INI-Befehlselement, das tatsächlich von der Engine gespeichert wird.Diese Struktur liefert den aktuellen Wert , den ursprünglichen Wert , das Modul, zu dem es gehört , und einige andere Codes unten (zend_ini_entryStrukturstruktur)Aufgelistete Informationen
new_value
Der einzustellende Wert.Wenn der Prozessor zurückkehrt ERFOLGREICH,Dieser Wert wird auf entry->value, gesetzt und wenn entry-> Für orig_value ist derzeit kein festgelegt. setzt den aktuellen Wert auf entry->orig_value in , und legen Sie das Tag entry->modified fest.Die Länge davon Zeichenfolge wird übergeben new_value_lengthpassing.
mh_arg1, 2, 3
Diese 3 Zeiger entsprechen den Datenzeigern, die bei der INI-Anweisung angegeben werden definiert (zend_ini_entry3 Mitglieder mit demselben Namen ).eigentlich ,Diese Werte werden von der Engine für die interne Verarbeitung verwendet,Sie müssen sich nicht um sie kümmern.
Bühne
ZEND_INI_STAGE_Serie Einer von 5Werten:
STARTUP, SHUTDOWN, ACTIVATE, DEACTIVATE, RUNTIME. Diese Konstanten entsprechen MINIT, MSHUTDOWN, RINIT, RSHUTDOWN, und der aktiven Skriptausführung .
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen.
In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.
Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist.
Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c
Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet
JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.
Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein.
Was ist ein Vokal?
Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben:
a, e, ich, o, u
Beispiel 1
Eingabe: String = "TutorialPoint"
Ausgabe: 6
erklären
Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan
Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen
Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.
Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.