


In diesem Artikel wird hauptsächlich die kurze Diskussion zum PHP-Quellcode 15 vorgestellt: In Bezug auf die Funktion array_walk hat sie einen bestimmten Referenzwert. Jetzt können Freunde in Not darauf verweisen.
Eine kurze Beschreibung Diskussion über PHP-Quellcode 10 Fünf: Über die array_walk-Funktion
array_walk
(PHP 3 >= 3.0.3, PHP 4, PHP 5)
array_walk – Benutzerfunktion anwenden auf jedes Mitglied im Array
Beschreibung
bool array_walk (array &array, callback funcname [, Mixed userdata] )
Gibt TRUE zurück, wenn erfolgreich, und FALSE, wenn fehlgeschlagen.
Wenden Sie die benutzerdefinierte Funktion funcname auf jede Zelle im Array-Array an. Normalerweise akzeptiert funcname zwei Parameter. Als erster Wert wird der Wert des Array-Parameters und als zweiter der Schlüsselname verwendet. Wenn das optionale Argument userdata angegeben wird, wird es als drittes Argument an Callback funcname übergeben.
Wenn die Funktion funcname mehr Argumente als angegeben erfordert, wird jedes Mal, wenn array_walk() funcname aufruft, ein Fehler der Stufe E_WARNING generiert. Diese Warnungen können unterdrückt werden, indem dem array_walk()-Aufruf der PHP-Fehleroperator @ vorangestellt wird oder indem error_reporting() verwendet wird.
Hinweis: Wenn funcname direkt auf die Werte im Array zugreifen muss, geben Sie den ersten Parameter von funcname als Referenz an. Daher verändern alle Änderungen an diesen Zellen auch das ursprüngliche Array selbst.
Hinweis: Die Übergabe von Schlüsselnamen und Benutzerdaten an funcname ist neu in PHP 4.0.
array_walk() wird vom internen Array-Zeiger des Arrays nicht beeinflusst. array_walk() durchläuft das gesamte Array, unabhängig von der Position des Zeigers. (Dies liegt daran, dass das Programm den Zeiger der Hash-Tabelle zurücksetzt, in der sich das Array zu Beginn des Array-Durchlaufs befindet.)
Der Benutzer sollte das Array selbst in der Rückruffunktion nicht ändern. Zum Beispiel Einheiten hinzufügen/löschen, Einheiten deaktivieren usw. Wenn sich das Array ändert, auf das array_walk() reagiert, ist das Verhalten dieser Funktion undefiniert und unvorhersehbar.
Beschreibung der Programmimplementierung:
Der letzte Aufruf der Erweiterung ist die Funktion php_array_walk:
static int php_array_walk(HashTable *target_hash, zval **userdata, int recursive TSRMLS_DC)
Bei rekursiv == 0 implementiert diese Funktion die Funktion array_walk
Bei rekursiv == 1, diese Funktion ist die Implementierung der Funktion array_walk_recursive
Im Quellcode durchläuft das Programm das gesamte Array und führt für jedes Array-Element relevante Funktionsaufrufe basierend auf der übergebenen Funktion durch
Die Der Funktionsaufruf lautet wie folgt:
fci.size = sizeof(fci); fci.function_table = EG(function_table); fci.function_name = *BG(array_walk_func_name); fci.symbol_table = NULL; fci.object_pp = NULL; fci.retval_ptr_ptr = &retval_ptr; fci.param_count = userdata ? 3 : 2; fci.params = args; fci.no_separation = 0; /* Call the userland function */ if (zend_call_function(&fci, &array_walk_fci_cache TSRMLS_CC) == SUCCESS) {
In diesem Funktionsaufruf wird eine Struktur verwendet:
typedef struct _zend_fcall_info { size_t size; // 整个结构体的长度,等于sizeof(此函数体的变量) HashTable *function_table; // executor_globals.function_table zval *function_name; // 函数名 HashTable *symbol_table; zval **retval_ptr_ptr; // 函数的返回值 zend_uint param_count; // 参数个数 zval ***params; // 所调用函数的参数 zval **object_pp; // 用于对象的方法调用时,存储对象 zend_bool no_separation; // 是否清空参数所在的栈} zend_fcall_info;
Das Obige ist eine persönliche Notiz. Bitte korrigiert mich!
EOF
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Eine kurze Diskussion des PHP-Quellcodes 14: Über die Funktion array_combine
Eine kurze Diskussion von PHP-Quellcode 13: Einführung in array_change_key_case, array_chunk
Eine kurze Diskussion des PHP-Quellcodes 12: Über return_value Rückgabewert
Das obige ist der detaillierte Inhalt vonEine kurze Diskussion des PHP-Quellcodes 15: Über die Funktion array_walk. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Zu den wirksamen Methoden zur Verhinderung fester Sitzungsangriffe gehören: 1. Regenerieren Sie die Sitzungs -ID, nachdem sich der Benutzer angemeldet hat; 2. Verwenden Sie einen sicheren Algorithmus für Sitzungs -ID -Generierung; 3.. Implementieren Sie den Timeout -Mechanismus für Sitzungen; 4. Verschlüsseln Sie Sitzungsdaten mithilfe von HTTPS. Diese Maßnahmen können sicherstellen, dass die Anwendung bei festgelegten Sitzungen unzerstörbar ist.

Die implementierende Sitzungsfreie Authentifizierung kann durch die Verwendung von JSONWEBTOKENS (JWT), einem tokenbasierten Authentifizierungssystem, erreicht werden, bei dem alle erforderlichen Informationen im Token ohne serverseitige Sitzungsspeicher gespeichert werden. 1) Verwenden Sie JWT, um Token zu generieren und zu überprüfen, 2) Stellen Sie sicher, dass HTTPS verwendet wird, um zu verhindern, dass Token abgefangen werden.

Zu den Sicherheitsrisiken von PHP -Sitzungen gehören hauptsächlich Sitzungshijacking, Sitzungsfixierung, Sitzungsvorhersage und Sitzungsvergiftung. 1. Session -Entführungen können durch Verwendung von HTTPS und Schutz von Cookies verhindert werden. 2. Die Sitzungsfixierung kann vermieden werden, indem die Sitzungs -ID regeneriert wird, bevor sich der Benutzer einmeldet. 4. Die Sitzungsvergiftung kann durch Überprüfung und Filterungsdaten verhindert werden.

Um eine PHP -Sitzung zu zerstören, müssen Sie zuerst die Sitzung starten, dann die Daten löschen und die Sitzungsdatei zerstören. 1. Verwenden Sie Session_Start (), um die Sitzung zu starten. 2. Verwenden Sie Session_unset (), um die Sitzungsdaten zu löschen. 3. Verwenden Sie schließlich Session_destroy (), um die Sitzungsdatei zu zerstören, um die Datensicherheit und die Ressourcenfreigabe zu gewährleisten.

Wie ändere ich den Standard -Sitzungsweg von PHP? Es kann durch die folgenden Schritte erreicht werden: Verwenden Sie Session_save_path ('/var/www/sessions'); Session_start (); in PHP -Skripten, um den Sitzungsspfad zu setzen. Setzen Sie in der Datei php.ini, um den Sitzungsspfad global zu ändern. Verwenden Sie Memcached oder Redis, um Sitzungsdaten wie ini_set ('Session.Save_handler', 'memcached') zu speichern; ini_set (

TomodifyDatainaphpSession, startTheSessionwithSession_Start (), dann $ _SessionToSet, modify, orremovevariables.1) startTheSession.2) setOrmodifySessionvariabling $ _Session.3) removeVariables mit ()

Arrays können in PHP -Sitzungen gespeichert werden. 1. Starten Sie die Sitzung und verwenden Sie Session_Start (). 2. Erstellen Sie ein Array und speichern Sie es in $ _Session. 3. Abrufen Sie das Array durch $ _Session ab. 4. Optimieren Sie Sitzungsdaten, um die Leistung zu verbessern.

Die PHP -Sitzungsmüllsammlung wird durch einen Wahrscheinlichkeitsmechanismus ausgelöst, um abgelaufene Sitzungsdaten zu beseitigen. 1) Legen Sie die Auslöserwahrscheinlichkeit und die Sitzungslebenszyklus in der Konfigurationsdatei ein. 2) Sie können Cron-Aufgaben verwenden, um Hochlastanwendungen zu optimieren. 3) Sie müssen die Häufigkeit und Leistung von Müllsammlungen ausgleichen, um Datenverlust zu vermeiden.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.
