Welche Methoden der PHP-Serialisierung gibt es?
PHP-Serialisierungsmethode: 1. Verwenden Sie die Funktion serialize(), Syntax „serialize(value)“; 2. Verwenden Sie die Funktion „base64_encode()“; 3. Verwenden Sie die Funktion „var_export()“;
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Szenario:
Cookies können keine Daten in zusammengesetzter Form speichern, daher muss ein mehrdimensionales Array serialisiert und serialisiert werden Im Cookie gespeichert. Allerdings ist die PHP-Version zu niedrig (5.2) und unterstützt nicht json_encode. Lösung (Serialisierung und Deserialisierung):
1. Die Serialisierungs- und Deserialisierungsfunktionen unterstützen nur eine -dimensionale Arrays. Es wird gesagt, dass die Unterstützung für Objekte besser ist, json_encode unterstützt keine Objekte
Alle Werte in PHP können mit der Funktion serialize(), der Serialisierung, in eine Zeichenfolge konvertiert werden, die gespeichert werden kann. Die Funktion unserialize() kann die Zeichenfolge wieder auf den ursprünglichen Wert von PHP zurücksetzen, was einer Deserialisierung entspricht. Nehmen Sie ein Objekt als Beispiel. Wenn ein Objekt serialisiert wird, werden alle Variablen des Objekts gespeichert, aber die Methoden des Objekts werden nicht gespeichert. Nur der Name der Klasse wird gespeichert. Um ein Objekt deserialisieren zu können, muss außerdem die Klasse des Objekts definiert worden sein. Wenn Sie ein Objekt der Klasse A serialisieren, wird eine auf Klasse A bezogene Zeichenfolge zurückgegeben, die die Werte aller Variablen im Objekt enthält.
Wenn Sie ein Objekt in einer anderen Datei deserialisieren möchten, muss die Klasse des Objekts vor der Deserialisierung definiert werden. Dies kann erreicht werden, indem Sie eine Datei einbinden, die die Klasse definiert, oder die Funktion spl_autoload_register() verwenden. Das Syntaxformat der Funktion
serialize() lautet wie folgt:
serialize(mixed $value)
wobei $value die zu serialisierende Variable ist. Die Funktion
serialize() kann jeden Typ außer Ressource verarbeiten. Beim Serialisieren eines Objekts ruft PHP vor der Sequenzaktion die Memberfunktion __sleep() des Objekts auf. Dadurch können alle Bereinigungsvorgänge durchgeführt werden, bevor das Objekt serialisiert wird. Wenn ein Objekt mit unserialize() deserialisiert wird, wird in ähnlicher Weise die Memberfunktion __wakeup() aufgerufen.
Nachdem Sie die Funktion serialize() zum Serialisieren des Objekts verwendet haben, können Sie die resultierende Zeichenfolge in einer Datei oder Datenbank speichern und dann die Funktion unserialize() verwenden, um die Zeichenfolge bei Bedarf zu deserialisieren.2, base64_encode und base64_decode
, das gleiche Problem, mehrdimensional wird nicht unterstützt, bei Verwendung erhöht die Base64-Codierung die Länge der Zeichenfolge. Um dieses Problem zu lösen, können Sie es mit gzcompress verwenden:
function my_serialize( $obj ) { return base64_encode(gzcompress(serialize($obj))); } //反序列化 function my_unserialize($txt) { return unserialize(gzuncompress(base64_decode($txt))); }
3. var_export und eval
$look_books = array($aid => array($cid => array('article_name' => $article->articlename, 'chapter_name' => $chapter->chaptername))) + $look_books; $look_books = var_export($look_books, true); setcookie('look_books', $look_books, $cookieTime, '/', '.dym.com');
unterstützen mehrdimensionale Arrays, es ist jedoch zu beachten, dass einfache und doppelte Anführungszeichen Escape-Zeichen haben, was zu eval führt fehlschlagen und die Escape-Zeichen müssen entfernt werden stripcslashes() 即可。
$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut'); //序列化数组 $s = wddx_serialize_value($a); echo $s; //输出结果(查看输出字符串的源码):<wddxPacket version='1.0'><header/><data><struct><var name='a'><string>Apple</string></var><var name='b'><string>banana</string></var><var name='c'><string>Coconut</string></var></struct></data></wddxPacket> echo '<br /><br />'; //反序列化 $o = wddx_deserialize($s); print_r($o); //输出结果:Array ( [a] => Apple [b] => banana 1 => Coconut )
Auf diese Weise nimmt das XML-Tag selbst zu viele Zeichen und mehr Speicher ein. Empfohlenes Lernen: „
PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWelche Methoden der PHP-Serialisierung gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

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.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Das Arbeiten mit der Datenbank in CakePHP ist sehr einfach. In diesem Kapitel werden wir die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) verstehen.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
