Position actuelle: Accueil> Derniers articles> Implémentez le stockage persistant d'objets en PHP en utilisant Serialize

Implémentez le stockage persistant d'objets en PHP en utilisant Serialize

gitbox 2025-05-28

Dans PHP, la fonction sérialisée est un outil pour convertir les structures de données PHP telles que les tableaux ou les objets en formats de chaîne storables. Grâce à la sérialisation, PHP peut facilement enregistrer les données d'objets dans un fichier ou une base de données, permettant le stockage persistant d'objets. Cet article expliquera en détail comment utiliser la fonction de sérialisation pour atteindre cet objectif.

1. Quelle est la fonction sérialisée?

La fonction Serialize convertira une structure de données PHP (y compris les objets, les tableaux, etc.) en une chaîne. Cette chaîne peut être restaurée à la structure de données d'origine plus tard via la fonction non sérialisée . Les données sérialisées peuvent être enregistrées dans les fichiers, les bases de données ou envoyées aux serveurs distants, etc., pour le stockage à long terme et la transmission croisée.

2. Utilisez la fonction de sérialisation pour implémenter un stockage persistant des objets

Prenons un objet PHP simple comme exemple pour voir comment utiliser la fonction sérialisée pour implémenter le stockage persistant des objets.

Tout d'abord, nous créons un objet de classe PHP:

 <?php
class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    public function display() {
        echo "Name: {$this->name}, Age: {$this->age}\n";
    }
}
?>

2.1 sérialiser les objets

Ensuite, nous pouvons sérialiser un objet d'instance d'une classe de personne en une chaîne via la fonction sérialiser . Nous le stockons ensuite dans un fichier de persistance:

 <?php
// créer Person Objet
$person = new Person("Alice", 30);

// utiliser serialize 将Objet转为字符串
$serializedPerson = serialize($person);

// Enregistrer la chaîne sérialisée dans un fichier
file_put_contents('person.txt', $serializedPerson);

echo "Object serialized and saved to person.txt\n";
?>

2.2 Désérialiser les objets

Lorsque nous devons recharger cet objet, nous pouvons utiliser la fonction non sérialisée pour restaurer la chaîne sérialisée stockée dans le fichier dans l'objet d'origine:

 <?php
// Lire la chaîne sérialisée à partir du fichier
$serializedPerson = file_get_contents('person.txt');

// utiliser unserialize 将字符串反序列化为Objet
$person = unserialize($serializedPerson);

// 输出恢复的Objet
$person->display();  // Output: Name: Alice, Age: 30
?>

3. Utiliser l'URL pour le stockage persistant

En plus d'enregistrer dans les fichiers locaux, nous pouvons également stocker des données sérialisées sur un serveur ou une base de données distant, ou même les transférer via des URL. Supposons que nous voulons envoyer les données d'objet sérialisées à un serveur distant, voici un exemple utilisant CURL:

 <?php
// Sérialiser les données
$serializedData = serialize($person);

// 发送Sérialiser les données到Serveur distant
$url = "http://gitbox.net/store_serialized_data";  // Serveur distant URL
$data = array("data" => $serializedData);

// initialisation cURL Session
$ch = curl_init($url);

// installation cURL Options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// mettre en œuvre cURL demander
$response = curl_exec($ch);

// Vérifier les erreurs
if($response === false) {
    echo "cURL Error: " . curl_error($ch);
} else {
    echo "Data successfully sent to server: $response";
}

// fermeture cURL Session
curl_close($ch);
?>

Dans l'exemple ci-dessus, nous envoyons les données d'objet sérialisées à l'URL spécifiée via CURL (remplacée ici par gitbox.net ). Du côté du serveur distant, vous pouvez recevoir et traiter ces données sérialisées, telles que les enregistrer dans une base de données ou les enregistrer dans un fichier.

Résumer

La fonction de sérialisation est un outil très utile en PHP qui peut nous aider à convertir des structures de données complexes telles que des objets et des tableaux en chaînes et les stocker de manière persistante. Nous pouvons enregistrer les données sérialisées dans des fichiers, des bases de données et même les transférer vers d'autres endroits sur le réseau. Grâce aux exemples de cet article, vous pouvez facilement sérialiser les données des objets et implémenter un stockage persistant, ce qui est pratique pour le partage entre les systèmes ou le stockage à long terme.