Lien original : http://hi.baidu.com/lostdays/blog/item/8d76c300ec4e3c15738b65fa.html
Catalogue général
Quoi, Pourquoi, Comment
Quoi
Pourquoi
Comment
la syntaxe de sérialisation PHP
Exemple de sérialisation PHP
Sérialiser en JSON en JavaScript - en utilisant json2.js
Sérialiser en JSON en JavaScript : à l'aide de prototype.js
PHP avec la fonction JSON
json_decode
fonction json_encode
exemple de fonction json_decode
Un exemple de pratique de la fonction json_encode
donne une véritable
explication de base des connaissances
Partie JavaScript frontale
Partie PHP back-end
Quoi, Pourquoi, Comment
Quoi
Ok, chers amis, commençons le voyage vers ce nouveau concept. Peut-être que tout le monde n'a pas prêté beaucoup d'attention au sujet de la sérialisation auparavant. En fait, cela date du jour où j'ai feuilleté le manuel PHP. et j'ai trouvé cette sérialisation. Après cela, je me suis ennuyé et j'ai créé un plug-in WordPress. À cette époque, j'ai utilisé la sérialisation et j'ai trouvé que c'était effectivement très pratique dans certaines situations.
Expliquons d'abord la sérialisation : en termes simples, la sérialisation est le processus de conversion de variables en flux d'octets. L'introduction de la sérialisation résout efficacement le problème du stockage et de la transmission des objets. Par exemple, j'ai créé un objet en JavaScript et je souhaite maintenant enregistrer cet objet dans la base de données côté serveur, alors comment puis-je l'exploiter, cette fois la sérialisation ? d'objets est souvent utilisé. Dans la sérialisation de JavaScript, il faut mentionner JSON JSON (JavaScript Object Notation) est un format d'échange de données léger. Facile à lire et à écrire pour les humains, et facile à analyser et à générer pour les machines. Il est basé sur le langage de programmation JavaScript, un sous-ensemble de la norme ECMA-262 3e édition – décembre 1999. JSON utilise un format de texte totalement indépendant du langage, mais utilise également des conventions similaires à la famille des langages C (notamment C, C++, C#, Java, JavaScript, Perl, Python, etc.). Ces propriétés font de JSON un langage d'échange de données idéal.
Les gens comparent généralement JSON et XML. Les deux sont un moyen d'aplatir des objets (nous expliquerons cet « aplatissement » plus tard). XML se caractérise par une structure rigoureuse, tandis que JSON se caractérise par sa simplicité et sa facilité d'utilisation. le programme d'analyse, car il peut facilement convertir un objet sous la forme d'un flux de caractères, tel que le code suivant :
Code :
{"type": "human", "name": "hanguofeng", "age": 22 }
est une expression JSON qui enregistre un objet. Comment le restaurer en objet ? C'est très simple, comme suit :
Code :
var animal_str = '{"type":"human","name":"hanguofeng","age":22}';
var animal2=eval('(' + animal_str + ')');
Nous utilisons la fonction d'évaluation JavaScript pour exploiter l'expression JSON et renvoyer la valeur pour obtenir un objet À ce stade, je pense que vous comprendrez certainement Comme moi, je. admirez la réflexion du créateur du format JSON. Au départ, j'allais parler de sérialisation, mais j'ai "accidentellement" mentionné JSON et j'en ai tellement parlé Haha, est-ce que je suis sorti du sujet ? Non, la sérialisation PHP est très similaire à JSON. Une expression de sérialisation PHP est la suivante :
Code :
a:3:{s:4:"type";s:5:"humain";s:4:"nom";s:10:"hanguofeng";s:3:"âge";s:2:" 20" ;}
Sa structure ressemble quelque peu à JSON. En fait, cette expression est le résultat sérialisé du tableau suivant :
Code:
$animal =
tableau
(
"type" => "humain",
"nom" => "hanguofeng",
"âge" => "20"
);
OK, l'introduction ci-dessus est juste pour vous donner une idée générale de ce que sont la sérialisation et JSON. Vous n'avez pas besoin de vous mêler trop du code ici. Nous l'expliquerons en détail plus tard. utiliser le changement de sérialisation.
Pourquoi
la sérialisation est apparue pour la première fois comme une commodité pour la transmission de données. Comme j'ai posé la question au début de cet article, j'ai créé un objet en JavaScript. Je souhaite maintenant enregistrer cet objet dans la base de données côté serveur. Comment dois-je procéder ? En fait, il s'agit de savoir "comment soumettre un objet du navigateur au serveur". Lors de ce processus de transmission, nous savons que seul le flux de caractères peut réellement être transmis. Le flux de caractères est unidimensionnel (plat). , mais de nombreux objets Mais c'est multidimensionnel. Si l'objet à transférer est une chaîne, c'est très simple. Nous pouvons l'utiliser directement comme contenu transféré. Si l'objet à transférer est un tableau ou une autre structure. besoin d'utiliser des caractères. Pour le décrire, par exemple, au téléphone, si je vous demande quel est votre nom, vous me direz que vous vous appelez Zhang San ou Li Si, et si je vous demande à quoi ressemblez-vous. , il faut utiliser des mots. On m'a décrit que le support par lequel nous transmettons des données est souvent le même que cette ligne téléphonique, qui ne peut transmettre que des flux de caractères, et le processus par lequel nous décrivons les objets est en fait un processus de sérialisation. .
De plus, la sérialisation peut également être utilisée pour le stockage persistant d'objets. Peut-être que, comme moi, vous avez déjà pensé à stocker un objet dans un certain champ de la base de données, nous pouvons maintenant le faire très simplement, et votre champ de base de données n'en a pas besoin. pour être défini sur un format spécial, définissez-le simplement sur varchar (bien sûr, si l'objet est volumineux, vous devrez peut-être le définir sur texte).
Comment
la syntaxe de sérialisation PHP
D'accord, je pense que vous avez compris les questions Quoi et Pourquoi. À la fin de cette section, nous parlerons de quelque chose de plus théorique, c'est-à-dire comment utiliser PHP pour sérialiser et désérialiser des données, comment sérialiser JavaScript. objets (c'est-à-dire les changer au format JSON) et comment les désérialiser. Enfin, comment établir une relation entre la sérialisation JSON et PHP.
PHP nous fournit deux fonctions pour les opérations de sérialisation et de désérialisation. Ces deux fonctions sont : Serialize() et unserialize(). Elles conviennent à PHP4 et PHP5. Elles sont expliquées ci-dessous :
Serialize()
(PHP 4, PHP 5, PECL axis2. :0.1.0-0.1.1)
Serialize — Obtenez une
chaîne
de valeur de représentation stockableSerialize ( valeur mixte $ )
Obtenez une valeur de représentation stockable. Cette fonction est utilisée pour stocker ou transférer sans perte les valeurs et les structures des variables PHP.
Si vous devez reconvertir la valeur sérialisée en variable PHP, vous pouvez utiliser la fonction unserialize().
Valeur
du paramètre
C'est-à-dire que l'expression est sérialisée. Serialize() gère tous les types sauf les pointeurs de ressources, et vous pouvez même sérialiser un tableau contenant des éléments pointant vers lui-même. Les tableaux ou objets que vous sérialisez et qui contiennent des pointeurs de boucle seront toujours stockés, mais les autres pointeurs seront perdus.
Lors de la sérialisation d'un objet, PHP tente d'abord d'appeler sa fonction membre __sleep(). Cela permettra des choses comme le nettoyage final avant que l'objet ne soit sérialisé. De même, lorsque l'objet est restauré à l'aide de la fonction unserialize(), la fonction membre __wakeup() sera appelée.
La valeur de retour
renvoie une chaîne contenant une expression de flux d'octets de l'objet qui peut être stockée n'importe où.
unserialize()
(PHP 4, PHP 5, PECL axis2 :0.1.0-0.1.1)
Récupère
une valeur de variable PHP à partir d'une expression stockée
mixte unserialize ( string $str )
unserialize() prend un type simple de variable sérialisée et le reconvertit en valeur de variable PHP.
Paramètre
str
chaîne sérialisée Si la variable désérialisée est un objet, après avoir restauré avec succès la structure de l'objet, PHP tentera automatiquement d'exécuter la fonction membre __wakeup() de l'objet (si elle existe).
Directive unserialize_callback_func : Vous pouvez définir la fonction de rappel à exécuter pendant ce processus, si une classe non définie doit être instanciée lors de la désérialisation (pour éviter d'obtenir un objet incomplet "__PHP_Incomplete_Class"). Vous pouvez utiliser php.ini, ini_set() ou .htaccess pour définir "unserialize_callback_func". Il est appelé lorsqu'une classe non définie est instanciée. Pour désactiver cette fonctionnalité, définissez-la simplement sur vide.
La valeur de retour
renvoie la valeur convertie, qui peut être une variable booléenne, un nombre réel, un nombre à virgule flottante, une chaîne, un tableau ou un objet.
Si la chaîne entrante ne peut pas être désérialisée, FALSE est renvoyé et une erreur NOTICE est renvoyée.
(Ce qui précède est traduit du manuel PHP)
Sérialisation et désérialisation du
tableaud'instances de sérialisation PHP
OK, apprenons-le avec un exemple. Tout d'abord, veuillez créer le fichier sample1.php. Nous utilisons l'instruction suivante dans ce fichier. tableau :
Code :
<?php
$animal =
tableau
(
"type" => "humain",
"nom" => "hanguofeng",
"âge" => "20"
);
?>
Afin de tester la valeur de ce tableau, vous pouvez utiliser la fonction print_r() pour afficher le tableau. Les résultats de sortie sont les suivants :
Code :
Tableau
(
[type] => humain
[nom] => hanguofeng
[âge] => 20
)
Sérialisons-le ensuite. Le code de sérialisation est le suivant :
Code :
<?php
$animal =
tableau
(
"type" => "humain",
"nom" => "hanguofeng",
"âge" => "20"
);
$animal_ser=sérialiser($animal);
echo($animal_ser);
?>
Ici, nous sérialisons le tableau $animal, enregistrons la chaîne sérialisée renvoyée dans la variable $animal_ser et la générons. Le résultat de sortie est :
Code :
a:3:{s:4:"type";s:5:"humain";s:4:"nom";s:10:"hanguofeng";s:3:"âge";s:2:" 20" ;}
Analysons simplement cette chaîne :
a:3 indique qu'il s'agit d'un objet tableau (a), qui possède trois objets intégrés (3)
La partie à l'intérieur des accolades est une liste d'expressions d'objet séparées par des virgules. En prenant s:4:"type" comme exemple, elle représente une ou plusieurs chaînes d'une longueur de 4 chiffres (4) et une valeur de "type". , c'est-à-dire la clé du premier élément du tableau de hachage.
Nous n'entrerons pas dans les détails dans les parties suivantes. Vous pouvez essayer de sérialiser vous-même divers objets et voir comment la chaîne sérialisée est construite.
Regardons la désérialisation du tableau, c'est-à-dire la restauration de la chaîne sérialisée que nous avons générée ci-dessus dans un tableau. Le code est le suivant :
Code :
<?php
$animal_ser='a:3:{s:4:"type";s:5:"humain";s:4:"nom";s:10:"hanguofeng";s:3:"age";s :2:"20";}';
$animal = désérialiser($animal_ser);
print_r($animal);
?>
Dans la première ligne, nous supposons que la valeur de $animal_ser est la chaîne sérialisée obtenue ci-dessus. Dans la deuxième ligne, la chaîne est restaurée dans le tableau de départ et affectée à $animal. Enfin, le tableau $animal est affiché. time La sortie est la même que la sortie originale du tableau au début de cette section, c'est-à-dire :
code :
Tableau
(
[type] => humain
[nom] => hanguofeng
[âge] => 20
)
De cette façon, nous avons terminé la désérialisation du tableau.
Développer les connaissances - Sérialisation et désérialisation d'objets personnalisés
La sérialisation de tableaux est une opération de base. Cependant, dans la programmation réelle, nous pouvons souvent sérialiser d'autres types de variables, telles que les objets personnalisés. Voici une classe A écrite par nous-mêmes (enregistrée dans classa. .inc) :
Code :
<?php
classe A {
var $un = 1;
fonction show_one() {
echo $this->one;
}
}
?>
Nous créons une instance de la classe et sérialisons l'instance dans le code suivant :
Code :
<?php
include("classa.inc");
$a=nouveau A ;
echo(sérialiser($a));
?>
Le contenu de sortie à ce moment est :
code :
O:1:"A":1:{s:3:"un";i:1;}
Globalement, cette chaîne sérialisée affiche l'état actuel de l'objet, c'est-à-dire que la valeur de i est 1. Analysons les détails un par un. O:1 : Puisque la variable actuelle est un objet personnalisé, le caractère caractéristique est « O », ce qui signifie Objet. Le "A" suivant identifie de quelle classe la variable est une instance, ici il s'agit de la classe A. À l’intérieur des accolades se trouvent les noms et les valeurs de chaque attribut de l’instance. Ensuite on le désérialise :
Code :
<?php
include("classa.inc");
$s = 'O:1:"A":1:{s:3:"un";i:1;}';
$a = désérialiser ($s);
$a->show_one();
?>
À ce stade, "1" est affiché, c'est-à-dire que la méthode show_one() de classe A est appelée. Vous pouvez remarquer que même si la chaîne sérialisée de l'instance ne contient pas la méthode de classe, nous pouvons toujours appeler la méthode de classe après l'avoir désérialisée. Cette fonctionnalité est prise en charge dans PHP4 et versions ultérieures (bien sûr, vous devez inclure le fichier de définition de classe. classa.inc).
Remarque : Vous pouvez vous référer à la section Référence du langage->Classes et objets->Sérialisation des objets - objets dans les sessions du manuel PHP.
Sérialisation en JSON en JavaScript – à l'aide de json2.js
Il n'existe pas de méthode intégrée pour sérialiser des objets directement en JavaScript. Bien sûr, vous pouvez en écrire une vous-même, mais je vous recommande vivement d'être paresseux ici et d'utiliser des composants JSON prêts à l'emploi. Le site officiel www.json.org fournit une bibliothèque de codes pour la sérialisation JSON des objets JavaScript - json2.js, que vous pouvez obtenir ici.
Après avoir obtenu le fichier json2.js, vous pouvez ouvrir ce fichier. La première partie du fichier contient une quantité considérable d'informations de commentaires. Si votre anglais est suffisamment bon, vous pouvez omettre cette section et vous référer simplement aux commentaires du fichier. D'accord, si en tant que programmeur, vous avez vu suffisamment de lettres et que vous souhaitez voir mes caractères chinois + lettres, alors vous pouvez continuer.
Traduisez simplement ce commentaire : Veuillez vous référer à http://www.JSON.org/js.html Ce fichier crée un objet global JSON contenant deux méthodes. Ses méthodes sont :
Code :
JSON.stringify(valeur, liste blanche)
valoriser n'importe quelle valeur JavaScript, généralement un objet ou un tableau
liste blanche Un paramètre de tableau facultatif utilisé pour déterminer comment la valeur de l'objet est sérialisée. Cette méthode génère du texte JSON à partir d'une valeur JavaScript. Lors de la sérialisation, il existe trois possibilités basées sur la liste blanche des paramètres facultatifs :
Si un objet a une méthode toJSON, appelez cette méthode et la valeur de retour de la méthode toJSON sera sérialisée.
Sinon, si le paramètre facultatif de liste blanche est un tableau, les éléments du tableau seront utilisés pour sélectionner les membres de l'objet à sérialiser.
Sinon, si le paramètre liste blanche n'est pas utilisé, tous les membres de l'objet seront sérialisés.
Si une valeur n'a pas de représentation JSON, telle qu'undéfini ou une fonction, elle ne sera pas sérialisée. Dans les objets, ces valeurs seront ignorées et dans les tableaux, elles seront remplacées par null.
JSON.stringify(undéfini) renverra undéfini. La date sera sérialisée à la date ISO indiquée.
Exemple :
code :
var text = JSON.stringify(['e', {pluribus : 'unum'}]);
//le texte est '["e",{"pluribus":"unum"}]'
JSON.parse (texte, filtre)
Cette méthode analyse un texte JSON et génère un composant ou un tableau, qui peut lever une exception SyntaxError.
Le paramètre de filtre facultatif est une fonction qui filtre et transforme les résultats. Il accepte chaque clé et valeur, et sa valeur de retour est utilisée pour remplacer la valeur source. S'il renvoie la valeur reçue, le résultat est inchangé. Si le résultat est indéfini, le membre sera supprimé.
Exemple :
code :
//Analyse le texte et si une clé contient la chaîne "date", convertit sa valeur en date
myData = JSON.parse(texte, fonction (clé, valeur) {
return key.indexOf('date') >= 0 ? new Date(value) : valeur;
});
Le didacticiel d'introduction ci-dessus vous a donné une compréhension de base de l'utilisation de json2.js. Je n'entrerai pas dans les détails de ce fichier ici. J'ai juste un petit conseil si vous souhaitez simplement analyser un texte JSON, vous pouvez utiliser eval. () Fonction, la fonction est une fonction intégrée de JavaScript. Par exemple, pour analyser le texte JSON généré dans le cas de JSON.stringify, vous pouvez utiliser :
code :
var monE = eval('["e",{"pluribus":"unum"}]');
pour obtenir l'objet myE.
Sérialiser en JSON en JavaScript : utilisez prototype.js
Si vous êtes comme moi et que vous aimez utiliser des frameworks JavaScript open source dans vos projets, vous pourrez peut-être ignorer l'utilisation du fichier json2.js. Ici, prototype.js est par exemple. Le fichier peut être téléchargé sur http://www.prototypejs.org Étant donné que cet article ne concerne pas le framework JavaScript, je suppose ici que vous avez déjà une certaine compréhension de l'utilisation de prototype.js.
prototype.js fournit la méthode toJSON pour les objets Object. Vous pouvez utiliser la méthode Object.toJSON() pour réaliser la sérialisation des objets, par exemple :
code :
var chat=
{
nom : "bonjour kitty",
hauteur:"6 pommes"
}
alert(Object.toJSON(cat));
//Une boîte de dialogue apparaîtra avec le contenu {"name": "hellokitty", "height": "6 pommes"}
De plus, il existe une prise en charge JSON supplémentaire dans prototype.js, principalement l'analyse du contenu JSON dans la demande de retour Ajax dans l'objet Ajax. Cela n'a pour l'instant rien à voir avec notre contenu et ne sera pas présenté à nouveau.
PHP et JSON
Ci-dessus, nous avons découvert la méthode de sérialisation d'objets en PHP et la méthode de sérialisation d'objets en JSON en JavaScript. Vous vous demanderez probablement pourquoi j'ai mis les deux ensemble, car leur syntaxe n'est en réalité pas exactement la même. en PHP, il est possible de désérialiser le texte JSON, et il est également possible de sérialiser des objets PHP en JSON au lieu du texte de style PHP. Ceci est principalement accompli par les deux fonctions json_decode et json_encode. Il convient de noter que ces deux fonctions ne sont prises en charge que dans PHP 5 >= 5.2.0. Si vous souhaitez écrire un programme qui s'exécute dans l'environnement PHP4, alors ces deux fonctions. ne peut pas être utilisé.
Syntaxe
de la fonction json_decode
mixte json_decode ( string $json [, bool $assoc] )
Obtenez un texte codé JSON et convertissez-le en
paramètre
variable PHPjson
Texte codé JSON
association
Lorsque TRUE, la valeur de retour est un tableau associatif.
La valeur de retour
est
un objet,
ou si le paramètre assoc facultatifest
TRUE, un tableau associatif sera renvoyé.
valeur
de paramètre
d'expression JSON
d'une valeur
La valeur à encoder peut être n'importe quel type de paramètre à l'exception de la ressource. Cette fonction ne fonctionne qu'au format d'encodage UTF-8.
Renvoie
le
texte JSON encodé en cas de succès
. hypothèse, c'est-à-dire que nous avons un module d'enregistrement des utilisateurs, qui fonctionne de manière « orientée objet ». Dans l'instance de fonction json_decode, nous modifions les informations d'enregistrement de l'utilisateur en un attribut de classe au premier plan, puis les passons en arrière-plan. php (pour plus de simplicité, Ajax n'est pas utilisé ici). Dans l'exemple json_encode, nous référençons un fichier js dans le fichier html, l'adresse pointe vers le fichier php et générons l'objet utilisateur codé en json dans le fichier php (également pour plus de simplicité, nous générons directement un objet sans obtenir les informations de la base de données) et sortie en HTML.
D'accord, regardons d'abord la page frontale json_encode.htm. Cette page imite la page d'inscription habituelle. Une fois soumise, la fonction JavaScript est déclenchée, un utilisateur d'objet utilisateur est généré et le contenu du formulaire. est défini comme attribut utilisateur, générez du texte JSON et transmettez-le au fichier json_encode.php d'arrière-plan en mode POST. Dans le fichier js_encode.php, utilisez la fonction json_decode pour analyser le texte JSON dans un objet PHP et le générer.
D'accord, jetons d'abord un coup d'œil au fichier json_encode.html. Le code du fichier est le suivant :
Code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<tête>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>json_decode</title>
<script src="json2.js" type="text/javascript"></script>
<script type="text/javascript">
fonction JSON_test(o){
var utilisateur = {
nom:document.getElementById('txt_name').value,
email:document.getElementById('txt_email').value,
mot de passe:document.getElementById('txt_name').value
}
var json_string = JSON.stringify(user);
document.getElementById('txt_json').value=json_string;
alert("Cliquez sur OK pour soumettre le formulaire");
o.submit();
}
</script>
</tête>
<corps>
<form id="form1" name="form1" method="post" action="json_encode.php" onsubmit="JSON_test(this)">
<label for="txt_name">Nom</label>
<p>
<input type="text" name="txt_name" id="txt_name" />
</p>
<label for="txt_email">E-mail</label>
<p>
<input type="text" name="txt_email" id="txt_email" />
</p>
<p>
<label for="txt_password">Mot de passe</label>
</p>
<p>
<input type="text" name="txt_password" id="txt_password" />
</p>
<p>
<input type="text" name="txt_json" id="txt_json" />
<label for="bouton"></label>
<input type="submit" name="button" id="button" value="JSON" />
</p>
</form>
</corps>
</html>
Lorsque le formulaire est soumis, la fonction JavaScript JSON_text() sera déclenchée. Cette fonction crée d'abord un utilisateur d'objet JavaScript, définit ses attributs de nom, d'e-mail et de mot de passe sur les valeurs du formulaire correspondant, puis utilise le JSON.stringify. méthode du fichier json2.js en Il est converti en texte JSON json_string, et enfin le champ caché est défini (pour que ce soit clair ici, j'affiche ce champ caché sous la forme d'une zone de texte) la valeur de txt_json est json_string, et le formulaire est soumis.
Allez ensuite dans le fichier json_encode.php, comme suit :
Code :
<?php
$json_string = $_POST["txt_json"];
si(ini_get("magic_quotes_gpc")=="1")
{
$json_string=stripslashes($json_string);
}
$user = json_decode($json_string);
echo var_dump ($ utilisateur);
?>
Dans ce fichier, récupérez d'abord la valeur du champ du formulaire POST txt_json dans le fichier json_encode.html, placez-la dans la variable $json_string, puis jugez que si le paramètre PHP actuel est magic_quotes_gpc=On, c'est-à-dire les guillemets doubles entrants sera converti en sens, de sorte que la fonction json_decode ne puisse pas l'analyser, nous devons donc l'effacer. Ensuite, utilisez la fonction json_decode pour convertir le texte JSON en objet, enregistrez-le dans la variable $user et enfin utilisez echo var_dump($user); Le résultat final est :
Code :
objet (classe std) #1 (3) {
["nom"]=>
chaîne (10) "hanguofeng"
["e-mail"]=>
string(18) " [email protected] "
["mot de passe"]=>
chaîne (10) "hanguofeng"
}
l'instance de la fonction json_encode
est toujours composée de deux parties, à savoir json_enode.html et json_encode.php. Dans le fichier json_decode.html, le formulaire est fondamentalement similaire au fichier json_decode.html, mais la différence est que cette fois nous voulons obtenir le texte JSON de l'utilisateur correspondant à partir du fichier json_encode.php. premier :
Code :
<?php
Utilisateur de classe{
public $nom="";
public $email="";
public $mot de passe="";
} ;
$myUser = nouvel utilisateur ;
$myUser->name="hanguofeng";
$myUser->email=" [email protected] ";
$myUser->password="hanguofeng";
$json_string = json_encode($monutilisateur);
?>
var utilisateur = <?php echo($json_string)?>;
Ce fichier crée d'abord l'utilisateur de classe, puis obtient une instance de la classe d'utilisateur myUser et définit son nom d'utilisateur, son e-mail et son mot de passe. Ensuite, il utilise la fonction json_encode pour le convertir en texte JSON, l'enregistre dans la variable $json_string et enfin. génère un morceau de code JavaScript pour créer l'utilisateur de variable globale en JavaScript.
Ensuite, nous devons introduire le fichier json_encode.php dans le fichier json_encode.html et récupérer les différents attributs de l'objet utilisateur, comme suit :
Code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<tête>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>json_encode</title>
<script src="json_encode.php" type="text/javascript"></script>
</tête>
<corps>
<form id="form1" name="form1" method="post">
<label for="txt_name">Nom</label>
<p>
<input type="text" name="txt_name" id="txt_name" />
</p>
<label for="txt_email">E-mail</label>
<p>
<input type="text" name="txt_email" id="txt_email" />
</p>
<p>
<label for="txt_password">Mot de passe</label>
</p>
<p>
<input type="text" name="txt_password" id="txt_password" />
</p>
</form>
<script type="text/javascript" >
document.getElementById('txt_name').value=user.name;
document.getElementById('txt_email').value=user.email;
document.getElementById('txt_password').value=user.password;
</script>
</corps>
</html>
Dans ce fichier, vous devez faire attention à deux points. Le premier est que nous introduisons le fichier json_encode.php comme un fichier JavaScript avec ce code :
Code :
<script src="json_encode.php" type="text/javascript"></script>
Le deuxième point est :
Nous ajoutons du code JavaScript après le code de la zone de texte, exploitons l'attribut value de la zone de texte et définissons sa valeur sur la valeur correspondante de l'objet utilisateur.