Maison  >  Article  >  développement back-end  >  Structure de données PHP : l'art de la sérialisation et de la désérialisation, pour assurer la persistance et la transmission des données

Structure de données PHP : l'art de la sérialisation et de la désérialisation, pour assurer la persistance et la transmission des données

WBOY
WBOYoriginal
2024-06-01 14:01:58737parcourir

En PHP, la sérialisation convertit les structures de données en chaînes, tandis que la désérialisation restaure les chaînes en structures de données pour assurer la persistance et la transmission des données. La fonction de sérialisation sérialise convertit une structure de données en chaîne, tandis que la fonction de désérialisation restaure les données sérialisées à partir d'une chaîne. La sérialisation peut être utilisée pour la persistance des données (enregistrement dans un fichier) et le transfert de données (via des requêtes HTTP POST).

Structure de données PHP : lart de la sérialisation et de la désérialisation, pour assurer la persistance et la transmission des données

Structure de données PHP : l'art de la sérialisation et de la désérialisation

En PHP, la sérialisation est un processus de conversion d'une structure de données en chaîne, tandis que la désérialisation est le processus de restauration d'une chaîne en processus de structure de données. Ensemble, ils permettent la persistance et la transmission des données.

Sérialisation

La sérialisation convertit les structures de données PHP complexes en une chaîne qui peut être stockée dans un fichier ou une base de données, ou transmise sur le réseau. Voici un exemple de comment sérialiser à l'aide de la fonction serialize : serialize 函数进行序列化的示例:

$data = ['name' => 'John Doe', 'age' => 30];
$serialized = serialize($data);

这将创建一个包含序列化的数据的字符串,存储在 $serialized 变量中。

反序列化

要从字符串中还原序列化的数据,可以使用 unserialize 函数:

$unserialized = unserialize($serialized);

这将创建一个新的数据结构,包含与原始数据结构相同的数据。

实战案例:数据持久化

序列化允许将数据持久化到文件中,以便以后读取。这对于缓存数据或创建永续会话非常有用。例如,要将序列化数据保存到文件:

file_put_contents('data.txt', $serialized);

以后可以从文件中读取数据并反序列化:

$data = unserialize(file_get_contents('data.txt'));

实战案例:数据传输

序列化还可用于通过网络传输数据。例如,要通过 HTTP POST 请求传输序列化数据:

$post_data = ['name' => 'John Doe', 'age' => 30];
$serialized_data = serialize($post_data);
$params = ['data' => $serialized_data];

在接收端,使用 unserialize

$unserialized_data = unserialize($_POST['data']);

Cela créera une chaîne contenant les données sérialisées, stockées dans la variable $serialized.

🎜Désérialisation🎜🎜🎜Pour restaurer les données sérialisées à partir d'une chaîne, vous pouvez utiliser la fonction unsérialize : 🎜rrreee🎜Cela créera une nouvelle structure de données contenant la même structure de données que la structure de données d'origine. Les données. 🎜🎜🎜Cas pratique : la persistance des données 🎜🎜🎜La sérialisation permet de conserver les données dans un fichier pour une lecture ultérieure. Ceci est utile pour mettre en cache des données ou créer des sessions persistantes. Par exemple, pour enregistrer des données sérialisées dans un fichier : 🎜rrreee🎜Les données peuvent ensuite être lues à partir du fichier et désérialisées : 🎜rrreee🎜🎜Exemple pratique : transfert de données 🎜🎜🎜La sérialisation peut également être utilisée pour transférer des données sur le réseau. Par exemple, pour transférer des données sérialisées via une requête HTTP POST : 🎜rrreee🎜 Du côté récepteur, utilisez la fonction unserialize pour désérialiser les données : 🎜rrreee🎜 En utilisant la sérialisation et la désérialisation, vous pouvez facilement conserver PHP structures de données en fichiers ou les transmettre sur le réseau pour obtenir une transmission et un stockage fiables des données. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn