Wie serialisiert PHP Daten?

藏色散人
Freigeben: 2023-04-05 12:00:02
Original
5572 Leute haben es durchsucht

Meistens müssen wir komplexe Arrays in einer Datenbank oder in Dateien in PHP speichern. Einige Leute verwenden möglicherweise integrierte PHP-Funktionen, um diese Aufgabe zu erfüllen. Ein komplexes Array ist ein Array, das Elemente mehrerer Datentypen oder Arrays enthält.

Wie serialisiert PHP Daten?

Wir haben jedoch bereits eine praktische Lösung, um mit dieser Situation umzugehen. Wir müssen keine eigene Funktion schreiben, um komplexe Arrays in formatierte Strings umzuwandeln. Es gibt zwei beliebte Methoden zur Variablenserialisierung. (Empfohlen: PHP-Tutorial)

1. serialize()

2. unserialize()

Mit der Funktion serialize() können wir beliebige Daten in PHP serialisieren. Die Funktion serialize() akzeptiert einen Parameter, bei dem es sich um die Daten handelt, die wir klassifizieren möchten, und gibt eine serialisierte Zeichenfolge zurück.

Das Programm sieht wie folgt aus:

<?php 
  
//一个复杂的数组
$myvar = array( 
    &#39;hello&#39;, 
    42, 
    array(1, &#39;two&#39;), 
    &#39;apple&#39;
); 
  
// 转换成字符串 
$string = serialize($myvar); 
  
// 打印序列化的数据
echo $string; 
  
?>
Nach dem Login kopieren

Ausgabe:

a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:
0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";}
Nach dem Login kopieren

Aus dem obigen Code erhalten wir eine Variable $string mit serialisierten Daten. Wir können die Funktion unserialize() verwenden, um den Wert einer Variablen zu deserialisieren, um den ursprünglichen Wert des komplexen Arrays $myvar zurückzugeben.

Beispiel für die Funktionen serialize() und unserialize():

<?php
  
// 一个复杂的数组
$myvar = array(
    &#39;hello&#39;,
    42,
    array(1, &#39;two&#39;),
    &#39;apple&#39;
);
  
// 序列化上述数据
$string = serialize($myvar);
  
// 反序列化$string中的数据
$newvar = unserialize($string);  
   
// 打印未序列化的数据
print_r($newvar);
  
?>
Nach dem Login kopieren

Ausgabe:

Array
(
    [0] => hello
    [1] => 42
    [2] => Array
        (
            [0] => 1
            [1] => two
        )

    [3] => apple
)
Nach dem Login kopieren

Dies ist die native PHP-Serialisierungsmethode. Da JSON jedoch in den letzten Jahren so beliebt geworden ist, haben sie beschlossen, in PHP 5.2 Unterstützung dafür hinzuzufügen. Jetzt können Sie Daten in PHP mit den Funktionen json_encode() bzw. json_decode() serialisieren und deserialisieren.

Da es sich beim JSON-Format nur um Text handelt, kann er problemlos an oder vom Server gesendet und von jeder Programmiersprache als Datenformat verwendet werden.

Sehen wir uns an, wie man json_encode() in PHP verwendet :

<?php 
  
// 一个复杂的数组
$myvar = array( 
    &#39;hello&#39;, 
    42, 
    array(1, &#39;two&#39;), 
    &#39;apple&#39;
); 
  
// 序列化数据
$string = json_encode($myvar); 
  
// 打印序列化的数据
echo $string; 
  
?>
Nach dem Login kopieren

Ausgabe:

["hello",42,[1,"two"],"apple"]
Nach dem Login kopieren

Wir können json_decode() <🎜 verwenden > Die Funktion dekodiert die im obigen Programm kodierten Daten, um das ursprüngliche komplexe Array zu erhalten.

Das Programm sieht wie folgt aus:

<?php 
  
// 一个复杂的数组
$myvar = array( 
    &#39;hello&#39;, 
    42, 
    array(1, &#39;two&#39;), 
    &#39;apple&#39;
); 
  
// 序列化数据
$string = json_encode($myvar); 
  
// 解码上面编码的字符串
$newvar = json_decode($string); 
   
// 打印解码后的数据
print_r($newvar); 
  
?>
Nach dem Login kopieren

Ausgabe:

Array
(
    [0] => hello
    [1] => 42
    [2] => Array
        (
            [0] => 1
            [1] => two
        )
    [3] => apple
)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie serialisiert PHP Daten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage