Aktueller Standort: Startseite> Neueste Artikel> Wie überlasse ich PHP -Daten über Seiten über die Serialisierungsfunktion hinweg?

Wie überlasse ich PHP -Daten über Seiten über die Serialisierungsfunktion hinweg?

gitbox 2025-05-19

Bei der PHP -Programmierung ist die Serialisierungsfunktion ein sehr nützliches Tool, insbesondere wenn es erforderlich ist, komplexe Datenstrukturen wie Arrays oder Objekte in Dateien zu speichern oder diese Daten über das Netzwerk zu übertragen, können die Daten in Zeichenfolgen umwandeln. In diesem Artikel wird die Rolle der Serialisierungsfunktion eingeführt und erklärt, wie die Datenserialisierung und Deserialisierung durch sie implementiert werden, insbesondere, wie Daten über Seiten über URLs hinweg weitergegeben werden.

1. Die Rolle der Serialisierungsfunktion

Die Serialisierungsfunktion wandelt eine PHP -Datenstruktur (z. B. ein Array oder Objekt) in eine Zeichenfolge um, die leicht gespeichert oder über HTTP -Anforderungen übergeben werden kann. Und wenn Sie diese Datenstruktur in ihrem ursprünglichen Formular wiederherstellen müssen, können Sie die nieserialisierende Funktion verwenden.

Grammatik:

 string serialize ( mixed $value )
  • Parameter: $ value ist der Wert, den Sie serialisieren möchten, der alle Daten, einschließlich Arrays, Objekte usw., sein können.

  • Rückgabewert: Rückgabe einer Zeichenfolge, die die serialisierten Daten darstellt.

Beispiel:

 $array = array('name' => 'Alice', 'age' => 25);
$serializedData = serialize($array);
echo $serializedData;

Die Ausgangszeichenfolge kann aussehen wie:

 a:2:{s:4:"name";s:5:"Alice";s:3:"age";i:25;}

2. So implementieren Sie die Serialisierung und Deserialisierung von Daten

Deserialisierung soll die serialisierte Zeichenfolge in die ursprüngliche PHP -Datenstruktur wiederherstellen. Sie können die nieserialisierende Funktion verwenden, um diese Funktion zu implementieren.

Grammatik:

 mixed unserialize ( string $data )
  • Parameter: $ data ist eine serialisierte Zeichenfolge.

  • Rückgabewert: Gibt die Originaldaten zurück, normalerweise ein Array oder ein Objekt.

Beispiel:

 $serializedData = 'a:2:{s:4:"name";s:5:"Alice";s:3:"age";i:25;}';
$array = unserialize($serializedData);
print_r($array);

Die Ausgabe wird sein:

 Array
(
    [name] => Alice
    [age] => 25
)

3. Wie kann man Daten über Seiten über die Serialisierungsfunktion von PHP übergeben?

Wenn Sie Daten von einer Seite über URL an eine andere übergeben möchten, können Sie die Serialize -Funktion verwenden, um ein Array oder Objekt in eine Zeichenfolge umzuwandeln und sie dann durch die URL weiterzuleiten. Der Empfänger kann die Daten mithilfe der nieserialisierenden Funktion wiederherstellen.

3.1 Daten senden

Angenommen, Sie haben ein PHP -Array, das Sie an eine andere Seite übergeben möchten:

 // Definieren Sie ein Array
$data = array('name' => 'Alice', 'age' => 25);

// Serialisieren Sie Arrays
$serializedData = serialize($data);

// URL Codierte serialisierte Daten
$encodedData = urlencode($serializedData);

// Die Daten durchgeben URL Auf eine andere Seite senden
header('Location: receive.php?data=' . $encodedData);
exit;

In diesem Beispiel codieren wir die serialisierten Daten mithilfe von Urlencode , damit sie sicher als URL -Parameter übergeben werden können.

3.2 Daten empfangen

Auf der Receiver -Seite recisire.php können Sie die Parameter in der URL über $ _get abrufen und die Daten mithilfe der unverzündeten Funktion wiederherstellen.

 // Erhalten URL Parameter
if (isset($_GET['data'])) {
    // Daten dekodieren und deserialisieren Daten
    $serializedData = urldecode($_GET['data']);
    $data = unserialize($serializedData);

    // Ausgabedaten
    echo 'Name: ' . $data['name'] . '<br>';
    echo 'Age: ' . $data['age'] . '<br>';
} else {
    echo 'No data received.';
}

4.. Dinge zu beachten

  • URL -Längengrenze: Da die URL -Länge eine Obergrenze aufweist (normalerweise 2048 Zeichen), kann die Grenze überschritten werden, wenn die übergebenen Daten groß sind (z. B. eine große Menge an Array- oder Objektdaten). Erwägen Sie, Postanfragen zu verwenden oder Daten in einer Sitzung zu speichern.

  • Sicherheit: Bei der Verwendung von Unserialisierung ist eine besondere Sorgfalt erforderlich, insbesondere wenn sich von Deserialisierungsdaten aus nicht vertrauenswürdigen Quellen stammen, was zu Sicherheitslücken (z. B. Angriffen von Objektinjektion) führen kann. Php 7 und höher führt den Parameter Eventualer Cersela -Classen ein, mit dem Deserialisierte Klassen einschränken können, um die Sicherheit zu verbessern.

5. Zusammenfassung

Durch Serialisierungs- und Unserialisierung Funktionen bietet PHP eine einfache und effiziente Möglichkeit, Daten zu serialisieren und zu deserialisieren. Sie können mit diesen Funktionen leicht komplexe Datenstrukturen zwischen Seiten übergeben. Insbesondere wenn Sie Arrays oder Objekte über Seiten übergeben müssen, ist Serialize ein sehr nützliches Werkzeug. Achten Sie nur auf die Längenbeschränkungen und Sicherheitsprobleme der URL. Es ist sehr bequem, Daten zwischen verschiedenen Seiten zu übergeben.