Sans passer par de la programmation objet, PHP ne posséde pas de structure de données aussi élégante que le C ou le Cobol. Foin de l’élégance, soyons efficace, cela suffira. Nous allons réduire un ensemble de variables, scalaires, en une structure unique, plus facile à stocker, typiquement dans une base de données. Cela est réalisé par une opération appellée "sérialisation". voir http://fr.php.net/manual/fr/function.serialize.php
/* Soit un ensemble de variables. */
$var1 = 'azerty';
$var2 = 123.456;
$var3 = 'uiop';
/* Serialisation */
$container = serialize(array(
'var1' => $var1,
'var2' => $var2,
'var3' => $var3 );
/* Préparation pour stockage en base de données */
if (! get_magic_quotes_gpc()) {
$container = addslashes($container);
}
/* Suppression d'eventuelles séquelles de la lecture de la base de donnees */
if (! get_magic_quotes_gpc()) {
$container = stripslashes($container);
}
/* Deserialisation, et importation des variables du tableau vers la table des symboles */
extract(unserialize($container));
Par exemple, avec MySql, il convient d’utiliser mysql_real_escape(). Mais, cela est dangereux en cas d’évolution de votre application.
Donc, utilisez plutôt les fonctions liées à PDO http://fr.php.net/manual/fr/ref.pdo.php, telle pdo_quote() http://fr.php.net/manual/fr/function.PDO-quote.php
Il existe aussi la fonction addCslashes() http://fr.php.net/manual/fr/function.addcslashes.php , qui prend 2 paramètres, la chaîne à traiter, et la liste des caractères qui vont bénéficier d’un échappement. Elle m’a été fort utile pour adjoindre un antislashe à d’éventuelles double quotes (") à une chaîne contenue dans une variable PHP, qui aller être placée comme paramètre à la fonction JavaScript write()