Maison  >  Article  >  développement back-end  >  PHP désinialiser

PHP désinialiser

WBOY
WBOYoriginal
2024-08-29 12:51:25943parcourir

La désérialisation PHP est l'une des fonctions qui peuvent être utilisées pour convertir les données sérialisées en données d'entrée utilisateur réelles ; c'est un processus opposé de la fonction de sérialisation, il se concentrera principalement sur les tableaux, le mappage des collections, il calculera l'index du tableau pour chaque élément, la grande taille ou d'autres structures de données complexes, nous avons utilisé une méthode par défaut pour exploiter les données ainsi que la désérialisation () La méthode renvoie la valeur booléenne si l'entrée de l'utilisateur n'est pas désérialisable, donc le faux est renvoyé sur la console de sortie, l'objet est créé séparément pour la fonction de désérialisation.

PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Syntaxe :

PHP possède sa propre syntaxe pour les variables, les mots-clés et les fonctions permettant de créer des applications Web plus sophistiquées. Généralement, le format de sérialisation PHP n'est pas bien documenté comme la fonction Serialize() ; il prend en charge les entiers sérialisés, les flottants, les booléens, les chaînes et les tableaux. Objets et il inclut d'autres références pour la prise en charge de l'implémentation de la désérialisation.

<?php
$input= array('','');
$var = serialize($input);
$var1 = unserialize($var);
---some php codes based on the user needs---
?>

Les codes ci-dessus constituent la syntaxe de base pour utiliser les fonctions serialize() et unserialize() en PHP. Il prend en charge tous les types de données et autres fonctions par défaut.

Comment fonctionne la désérialisation des fonctions en PHP ?

La fonction de désérialisation dépend de la fonction de sérialisation ; quelles que soient les données appelées et utilisées sur cette fonction, elles seront entièrement sérialisées avec des clés. Si nous voulons accéder aux données, nous voulons désérialiser les données ou désérialiser les données dans le code. Alors seulement, nous avons accédé aux données ; il est également utilisé pour les concepts de fichiers. L'utilisation de ces fonctions serialize et unserialize() renvoie toujours les conditions booléennes qu'il sera sécurisé et plus protégé sur les objets non sérialisés, ou nous pouvons les appeler des données non fiables. Cela sera donc évité pour certains autres malwares, virus venant de l'extérieur de la machine. Il est également sécurisé grâce aux injections de code et même à la fin de la base de données, ce qui évitera certaines attaques par injection SQL pour les sites malveillants non fiables.

Généralement, la fonction unserialize() prend deux paramètres, str et options ; le str est l'un des paramètres qu'il contient des chaînes sérialisées en attente d'être désérialisées, et les options sont l'un des tableaux qu'il contient pour le contrôle de certains comportements de fonction qu'il n'accepte que pour les utilisateurs valides, en particulier les classes intégrées comme les classes autorisées. Il n'accepte que les noms de classe spécifiés et en particulier certaines méthodes comme _wakeup() et _destruct(); ces méthodes sont mises en œuvre en utilisant les objets sérialisés ; lorsque nous utilisons cette méthode, elle s'exécute automatiquement lorsque la fonction unserialize() est appelée sur l'objet spécifique.

Exemples de désérialisation PHP

Vous trouverez ci-dessous des exemples de désérialisation PHP :

Exemple n°1

Code :

<?php
$inputs = serialize(array('Siva', 'Raman', 'Sivaraman', 'wdigb', 'dwiugv', '87dhg', 'wdhgv', 'edhgfv', 'hfe', 'wgieufv', 'ehoije', 'iwuoegf', 'wuieguv','jdgv', 'wqgdjf', 'khwdjgh','jdhfdkswi', 'uqiwuke', 'iqweyf', 'oiuqiwleyugu' ));
echo  $inputs . '<br>';
$vars = unserialize($inputs);
var_dump ($vars);
echo $vars;
?>

Sortie :

PHP désinialiser

Dans l'exemple ci-dessus, nous avons utilisé les fonctions serialize et unserialize() qui sont dans les mêmes codes. Chaque fois que l'utilisateur donne une entrée à l'application, celle-ci la stockera dans une variable distincte. Il s'agit de la variable sérialisée et elle sera également imprimée sur la console à l'aide des instructions echo. Nous voulons désérialiser les données en utilisant la fonction unserialize(), et elles seront stockées sur une variable distincte, et elles seront également imprimées en utilisant les mêmes instructions d'écho. Si nous voulons imprimer les résultats sur la console, nous utiliserons d'autres méthodes par défaut comme print, echo etc. ce sont quelques méthodes qui sont utilisées sur les scripts PHP.

Exemple n°2

Code :

<?php
class demo {
public $vars;
}
class demo1 {
public $vars1;
}
class demo2 extends demo {
public $vars2, $vars3;
}
class demo3 extends demo2{
public $vars4;
}
class demo4 extends demo3 {
public $vars5;
}
class demo5 extends demo4 {
public $vars6;
}
class demo6 extends demo5{
public $vars7;
}
class demo7 extends demo6 {
public $vars8,$vars9, $vars10;
}
$c1 = new demo();
$c1->vars = 1234;
$c3 = new demo2();
$c3->vars2 = "Siva";
$c2 = new demo1();
$c2->vars1 = 2756876;
$d1 = serialize($c1);
$d2 = serialize($c2);
$d5 = serialize($c3);
$d3 = unserialize($d1, ["allowed_classes" => true]);
$d6 = unserialize($d5, ["allowed_classes" => true]);
$d4 = unserialize($d2, ["allowed_classes" => ["demo", "demo1"]]);
$d7 = unserialize($d5, ["allowed_classes" => ["demo", "demo1", "demo2"]]);
echo "Welcome To My Domain is: " . $d3->vars, $d6 ->vars2;
echo "<br />";
echo "Result of demo1 d3 memeber is: " . $d4->vars1;
echo "<br/>";
echo "Result of demo2 d7 memeber is: " . $d7->vars2;
?>

Sortie :

PHP désinialiser

Dans le deuxième exemple, nous avons utilisé les mêmes concepts de sérialisation et de désérialisation. Pourtant, ici, nous avons utilisé quelques cours. De plus, les relations parent-enfant pour chaque classe ont leurs propres variables distinctes avec des modificateurs d'accès public pour utiliser les mêmes variables en dehors des classes ; en utilisant l'objet comme ça, nous pouvons initialiser les valeurs des variables séparées. Ils le sérialiseront et le stockeront sur une variable distincte ; après cela, nous pouvons désérialiser les valeurs des variables et les stocker séparément. Nous pouvons ajouter n nombre de variables avec des valeurs individuelles pour sérialiser et désérialiser les données. Nous avons utilisé Allowed_classes pour valider les données de sérialisation dans le code.

Exemple #3

Code :

<?php
class demo
{
public $vars;
}
$vars1= new demo();
$vars1->vars= "siva";
$vars2= serialize($vars1);
echo "Welcome To My Domain<br> '$vars2'";
echo "<br><br>";
$vars3= unserialize($vars2);
echo "Have a Nice Day <br>";
echo  var_dump($vars3);
echo "<br> <br>";
echo "Thank you users your net result is shown" . $vars3->vars;
?>

Sortie :

PHP désinialiser

Dans le dernier exemple, nous avons utilisé à la fois les fonctions de sérialisation et de désérialisation en ce sens que nous avons utilisé des paires clé-valeur pour désérialiser les tableaux et les objets en PHP. Nous avons utilisé une variable avec la valeur « Siva », ce sera une chaîne de texte brut, puis elle sera reconvertie en objet qui est sérialisé et désérialisé les valeurs.

Conclusion

En PHP, nous avons utilisé des fonctions, des variables et des mots-clés par défaut pour créer des applications Web conviviales. Ainsi, certaines classes et méthodes par défaut peuvent être utilisées pour créer des techniques avancées dans les applications Web, de sorte que nous avons utilisé certaines techniques telles que Serialize() et Unserialize() pour stocker et récupérer les données de manière plus sécurisée.

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
Article précédent:Sérialisation PHPArticle suivant:Sérialisation PHP