J'ai bien apprécier l'initiative d'un membre lorsqu'il a poster en PHP, la fonction htmlspecialchars, au moment même ou j'étudie PHP, et plusieurs de ses fonction prédéfinis. Je me suis donc mis de la partie en vous offrant ici une étude sur le même sujet. Par contre, ais-je décidé de placer le pointeur sur le 2ième paramètre. C'est donc le titre du topic : PHP : htmlspecialchars : 2ième paramètre. Par contre, comprenez ici que je suis moi même en apprentissage de l'écriture en PHP. Sans faire indentique aux sources d'études, comme les sites en lignes ou les livres, n'en demeure pas moins que leurs influencent sont bien présent.
Le 2ième paramètre joue un rôle quelque peu différent. Celui-ci nous permettra de cibler un ou des caractères spéciaux cibler par ce paramètre. Par exemple la constante prédéfini ENT_COMPAT, est la valeur par défaut. En un mot si nous ne signons pas le 2ième paramètre, c'est ENT_COMPAT qui est exécuter. C'est ce que que vous verrez sur la capture d'écran, en comparaison avec les résultats du script via votre navigateur.
Je ne ferai pas d'interface de conversion ici. Mon but étant de vérifier par comparaison la capture et le script via le navigateur. Moi pour ma part le script est écrit avec dreamweaver. Lorsque je veux vérifier la source via le navigateur [affichage >> source] pour IE, celui-ci grimpe à nouveau dans dreamweaver. Évidemment avec cette différence que vous avez ici en bas dans la 2ième zone de code. Mon but sera donc de démontrer en interne ce qui se passe lorsque nous utilisons la fonction htmlspecialchars de PHP. Pour tous ceux et celles qui sont moins famillier à la programmation côté serveur, cette façon de faire và vous permettre d'avoir un regard sur les résultats lorsque le script PHP aura été exécuter. Celui-ci retourne un résultat. Du pure HTML, même si l'extension est (*.php). Je vous invitent donc à porter une attention particulière à la deuxième zone de code, plus loin sur le topic. Aussi aidez vous de la capture et du script PHP, présents sur le topic.
Comprenons ici que la signature de la fonction prédéfini est un peu comme ceci :
htmlspecialchars ( $chaine:String, $quoteStyle:int, $charset:String ); Seul le premier paramètre est obligatoire, le 2ième et 3ième sont facultatif. Mais n'oublions pas qu'une valeur par défaut s'exécute au lancement de l'application, si seulement, le premier paramètre est signé. Au 2ième paramètre c'est une des trois constantes et au 3ième paramètre c'est une string, le charset : ISO-8859-1. Un quatrième paramètre est possible mais je ne tiens pas à en parler ici. C'est un boolean $double_encode. Selon la documentation, si ce paramètre est désactivé PHP n'encode pas les entités HTML déjà existant. Vous trouverez les adresses utiles pour plus d'informations en bas de cette page.
Les trois constantes prédéfinis : 2ième paramètre : ENT_COMPAT | ENT_QUOTES | ENT_NOQUOTES. Ce sont ces trois constantes qui déterminent, et par le fait même, pointent les caractères spécifiques, en fonction de leurs implémentations au coeur même de PHP. Ce que l'on nomme dans la plupart des langages l'API [Application Programming Interface].
Comprenons aussi que la valeur par défaut, ENT_COMPAT, converti les guillemets mais pas les apostrophes. C'est ce vous verrez sur les résultats via l'affichage du script à partir de votre navigateur. Ceci est important dû au fait que différents langages pourront être manipuler, si vous prévoyez, par exemple, montrer un script xml. Nou savons que le xml portera majoritairement des caractères comme : < > " ou '. Le xml étant un langage de balisage et d'attributs fréquemment utilisés.
La constante ENT_QUOTES elle, convertira les guillemets et les apostrophes. Tandis que la constante ENT_NOQUOTES, ne convertira pas, ni les guillemets, ni les apostrophes. N'oubliez pas qu'il s'agit de la conversion de caractères spéciaux en entités, de là : ENT_ : pour entities, en anglais. Encore une fois je vous invitent à vérifier le deuxième script, le script retourner lorsque le fichier PHP a été exécuter.
Tout cà pour vous dire que les caractères spéciaux peuvent être cibler avec le 2ième paramètre signé. Nous ne nous intéresserons pas au 3ième paramètre pour l'instant. Celui-ci concerne le Charset. Sa valeur par défaut, comme vous vous y attendiez tous est une string : ISO-8859-1
Vous avez ici une capture des résultats à l'écran du fichier php exécuté.
Les numéros 3 et 4, sur la capture d'écran sont un peu particulier. En effet puisqu'au numéro 3 nous n'avons aucune conversion, la fonction htmlspecialchars n'est pas utilisé. Ce en quoi le ' <br /> ' est effectif. Nous voyons donc les résultats sur 2 lignes. Ce qui est tout à fait normal.
Au numéro 4 de la capture, cependant, nous utilisons la fonction htmlspecialchars, en premier lieu avec le premier paramètre. Vous vous rappelez que ENT_COMPAT est la valeur par défaut. Nous voyons donc les résultats sur une seule ligne. Pour affirmer davantage ce principe, vous avez aussi une deuxième exécution avec le 2ième paramètre signé : ENT_COMPAT. Les résultats seront donc les mêmes. C'est encore la valeur par défaut qui s'exécute, seulement cette fois la valeur du 2ième paramètre est signé. Vous pouvez vérifié le 2ième code ici en bas. Cette partie provient de l'affichage du script via le navigateur. Vous y verrez donc les caractères qui sont cibler ou non cibler.
Au numéro 5, nous utilisons ENT_QUOTES. Ce en quoi les guillemets et les apostrophes seront convertis. Tandis qu'au numéro 6 de la capture, aucun des guillemets ou des apostrophes ne seront convertis. Retenez bien que ENT_COMPAT ne converti pas les apostrophes. J'ai donc voulu ici une vérification des résultats par comparaison de la capture avec le deuxième secteur de code présent un peu plus loin sur le topic.
fichier php à exécuter :
Résultats du script via l'affichage de la source à partir du navigateur : affichage>>source : pour IE : Observez ce script.
Je donne ici ces quelques informations par respect à tous ceux et celles qui nous enseignent le scriptage en PHP, et aussi pour tout ceux et celles qui de près ou de loin s'intéressent au développement web au travers l'inévitable apprentissage de PHP. Un apprentissage qui je l'espère vous sera sympatique. PHP est est un beau langage, populaire et ouvert. Des sites de qualités seront écrits avec ce langage, orienté objet.
Considérant le 2ième paramètre lors de l'utilisation de la fonction, htmlspecialchars nous permets de voir les multiples possibilités de PHP, concernant l'affichage de script. Avec une vue plus complète nous pourrons donc passé à l'écriture de fonctions ou de classes personnelles, avec la capacité de structurer des zones de scripts orientés vers les enseignements et les échangent de données entrent utilisateurs.
Amicalement zardoz
++
Le 2ième paramètre joue un rôle quelque peu différent. Celui-ci nous permettra de cibler un ou des caractères spéciaux cibler par ce paramètre. Par exemple la constante prédéfini ENT_COMPAT, est la valeur par défaut. En un mot si nous ne signons pas le 2ième paramètre, c'est ENT_COMPAT qui est exécuter. C'est ce que que vous verrez sur la capture d'écran, en comparaison avec les résultats du script via votre navigateur.
Je ne ferai pas d'interface de conversion ici. Mon but étant de vérifier par comparaison la capture et le script via le navigateur. Moi pour ma part le script est écrit avec dreamweaver. Lorsque je veux vérifier la source via le navigateur [affichage >> source] pour IE, celui-ci grimpe à nouveau dans dreamweaver. Évidemment avec cette différence que vous avez ici en bas dans la 2ième zone de code. Mon but sera donc de démontrer en interne ce qui se passe lorsque nous utilisons la fonction htmlspecialchars de PHP. Pour tous ceux et celles qui sont moins famillier à la programmation côté serveur, cette façon de faire và vous permettre d'avoir un regard sur les résultats lorsque le script PHP aura été exécuter. Celui-ci retourne un résultat. Du pure HTML, même si l'extension est (*.php). Je vous invitent donc à porter une attention particulière à la deuxième zone de code, plus loin sur le topic. Aussi aidez vous de la capture et du script PHP, présents sur le topic.
Comprenons ici que la signature de la fonction prédéfini est un peu comme ceci :
htmlspecialchars ( $chaine:String, $quoteStyle:int, $charset:String ); Seul le premier paramètre est obligatoire, le 2ième et 3ième sont facultatif. Mais n'oublions pas qu'une valeur par défaut s'exécute au lancement de l'application, si seulement, le premier paramètre est signé. Au 2ième paramètre c'est une des trois constantes et au 3ième paramètre c'est une string, le charset : ISO-8859-1. Un quatrième paramètre est possible mais je ne tiens pas à en parler ici. C'est un boolean $double_encode. Selon la documentation, si ce paramètre est désactivé PHP n'encode pas les entités HTML déjà existant. Vous trouverez les adresses utiles pour plus d'informations en bas de cette page.
Les trois constantes prédéfinis : 2ième paramètre : ENT_COMPAT | ENT_QUOTES | ENT_NOQUOTES. Ce sont ces trois constantes qui déterminent, et par le fait même, pointent les caractères spécifiques, en fonction de leurs implémentations au coeur même de PHP. Ce que l'on nomme dans la plupart des langages l'API [Application Programming Interface].
Comprenons aussi que la valeur par défaut, ENT_COMPAT, converti les guillemets mais pas les apostrophes. C'est ce vous verrez sur les résultats via l'affichage du script à partir de votre navigateur. Ceci est important dû au fait que différents langages pourront être manipuler, si vous prévoyez, par exemple, montrer un script xml. Nou savons que le xml portera majoritairement des caractères comme : < > " ou '. Le xml étant un langage de balisage et d'attributs fréquemment utilisés.
La constante ENT_QUOTES elle, convertira les guillemets et les apostrophes. Tandis que la constante ENT_NOQUOTES, ne convertira pas, ni les guillemets, ni les apostrophes. N'oubliez pas qu'il s'agit de la conversion de caractères spéciaux en entités, de là : ENT_ : pour entities, en anglais. Encore une fois je vous invitent à vérifier le deuxième script, le script retourner lorsque le fichier PHP a été exécuter.
Tout cà pour vous dire que les caractères spéciaux peuvent être cibler avec le 2ième paramètre signé. Nous ne nous intéresserons pas au 3ième paramètre pour l'instant. Celui-ci concerne le Charset. Sa valeur par défaut, comme vous vous y attendiez tous est une string : ISO-8859-1
Vous avez ici une capture des résultats à l'écran du fichier php exécuté.
Les numéros 3 et 4, sur la capture d'écran sont un peu particulier. En effet puisqu'au numéro 3 nous n'avons aucune conversion, la fonction htmlspecialchars n'est pas utilisé. Ce en quoi le ' <br /> ' est effectif. Nous voyons donc les résultats sur 2 lignes. Ce qui est tout à fait normal.
Au numéro 4 de la capture, cependant, nous utilisons la fonction htmlspecialchars, en premier lieu avec le premier paramètre. Vous vous rappelez que ENT_COMPAT est la valeur par défaut. Nous voyons donc les résultats sur une seule ligne. Pour affirmer davantage ce principe, vous avez aussi une deuxième exécution avec le 2ième paramètre signé : ENT_COMPAT. Les résultats seront donc les mêmes. C'est encore la valeur par défaut qui s'exécute, seulement cette fois la valeur du 2ième paramètre est signé. Vous pouvez vérifié le 2ième code ici en bas. Cette partie provient de l'affichage du script via le navigateur. Vous y verrez donc les caractères qui sont cibler ou non cibler.
Au numéro 5, nous utilisons ENT_QUOTES. Ce en quoi les guillemets et les apostrophes seront convertis. Tandis qu'au numéro 6 de la capture, aucun des guillemets ou des apostrophes ne seront convertis. Retenez bien que ENT_COMPAT ne converti pas les apostrophes. J'ai donc voulu ici une vérification des résultats par comparaison de la capture avec le deuxième secteur de code présent un peu plus loin sur le topic.
fichier php à exécuter :
- Code: Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Conversion:caractères [PHP]</title>
<style type='text/css'>
body { background:#FFFFFF; }
p.fonction { color:green;margin-top:-0.1mm; }
.defaut { color:red;margin-top:-3.0mm;font-size:14px; }
.chaine { color:gray;font-size:16px;margin-top:-4.0mm; }
.texte { color:green; }
.variable { color:blue; }
em { color:gray; }
b { color:blue;font-family:sans-serif;font-size:14px; }
</style>
</head>
<body>
<h3>Conversions des caractères :
<p class='fonction'>htmlspecialchars (<em> param1:String, param2:Constante, param3:Charset </em>) ;</span></p>
<p class='defaut'><em>NOTE :</em> La constante <em>ENT_COMPAT</em> au 2ième paramètre est la valeur par défaut</p>
<?php
echo "--------------------------------------------------------------------------------------------<br>";
echo "<p class='texte'>La chaîne de texte à convertir</p>";
?>
<p class='chaine'>$texte = "Les valeurs des caractères : & <br /> avec " et '.";</p>
<?php
$texte = "Les valeurs des caractères : & <br /> avec \" et '.";
// ..
// .. Aucune conversion ici ..
// ..
echo "--------------------------------------------------------------------------------------------<br>";
echo "<b>Aucune conversion ici</b><br />";
echo "<b>echo \$texte;</b><br />";
echo $texte, "<br />\n";
echo "--------------------------------------------------------------------------------------------<br>";
// ..
// .. Conversion des caractères &, >, < et " ..
// ..
echo '<b>Conversion des caractères [ & , > , < , " ].</b><br />';
echo "<b>echo htmlspecialchars(\$texte)</b><br />";
// ..
echo htmlspecialchars($texte), "<br />\n";
echo "<b>echo htmlspecialchars(\$texte, ENT_COMPAT);</b><br />";
echo htmlspecialchars($texte, ENT_COMPAT) , "<br />\n";
echo "--------------------------------------------------------------------------------------------<br>";
// ..
// .. Conversion des caractères &, >, <, " et ' ..
// ..
echo "<b>Conversion des caractères [ & , > , < , " , ' ].</b><br />";
echo "<b>echo htmlspecialchars(\$texte, ENT_QUOTES);</b><br />";
echo htmlspecialchars($texte, ENT_QUOTES) , "<br />\n";
echo "--------------------------------------------------------------------------------------------<br>";
// ..
// .. Conversion des caratères $, >, et < uniquement ..
// ..
echo "<b>Conversion des caractères [ & , > , < ].</b><br />";
echo "<b>echo htmlspecialchars(\$texte, ENT_NOQUOTES);</b><br />";
echo htmlspecialchars($texte, ENT_NOQUOTES) , "<br />\n";
?>
</body>
</html>
Résultats du script via l'affichage de la source à partir du navigateur : affichage>>source : pour IE : Observez ce script.
- Code: Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Conversion:caractères [PHP]</title>
<style type='text/css'>
body { background:#FFFFFF; }
p.fonction { color:green;margin-top:-0.1mm; }
.defaut { color:red;margin-top:-3.0mm;font-size:14px; }
.chaine { color:black; }
em { color:gray; }
b { color:blue;font-family:sans-serif;font-size:14px; }
</style>
</head>
<body>
<h3>Conversions des caractères :
<p class='fonction'>htmlspecialchars (<em> param1:String, param2:Constante, param3:Charset </em>) ;</span></p>
<p class='defaut'><em>NOTE :</em> La constante <em>ENT_COMPAT</em> au 2ième paramètre est la valeur par défaut</p>
<p class='chaine'>$texte = "Les valeurs des caractères : & <br /> avec " et '.";</p>
--------------------------------------------------------------------------------------------<br>
<b>Aucune conversion ici</b><br /><b>echo $texte;</b><br />
Les valeurs des caractères : & <br /> avec " et '.<br />
--------------------------------------------------------------------------------------------<br>
<b>Conversion des caractères [ & , > , < , " ].</b><br />
<b>echo htmlspecialchars($texte)</b><br />
Les valeurs des caractères : & <br /> avec " et '.<br />
<b>echo htmlspecialchars($texte, ENT_COMPAT);</b><br />
Les valeurs des caractères : & <br /> avec " et '.<br />
--------------------------------------------------------------------------------------------<br>
<b>Conversion des caractères [ & , > , < , " , ' ].</b><br />
<b>echo htmlspecialchars($texte, ENT_QUOTES);</b><br />
Les valeurs des caractères : & <br /> avec " et '.<br />
--------------------------------------------------------------------------------------------<br>
<b>Conversion des caractères [ & , > , < ].</b><br />
<b>echo htmlspecialchars($texte, ENT_NOQUOTES);</b><br />
Les valeurs des caractères : & <br /> avec " et '.<br />
</body>
</html>
Sources d'études et d'inspirations :
PHP Manual Version française.
url de htmlspecialchars : http://ca3.php.net/manual/fr/function.h ... lchars.php
url de htmlentities : http://ca3.php.net/manual/fr/function.htmlentities.php
Considérer le secteur nommé : user contributed notes : en Anglais mais fort sympatique.
PHP avancé
Édition : Eyrolles
Auteur : Éric Daspet : Ingénieur Consultant sur les technologies Open Source.
Auteur : Cyril Pierre de Geyer : Responsable technique de la société Anaska,
--------> spécialisée à la formation aux techonologies Open Source.
ISBN : 978-2-212-12211-4
Code Éditeur : G12211
PHP Manual Version française.
url de htmlspecialchars : http://ca3.php.net/manual/fr/function.h ... lchars.php
url de htmlentities : http://ca3.php.net/manual/fr/function.htmlentities.php
Considérer le secteur nommé : user contributed notes : en Anglais mais fort sympatique.
PHP avancé
Édition : Eyrolles
Auteur : Éric Daspet : Ingénieur Consultant sur les technologies Open Source.
Auteur : Cyril Pierre de Geyer : Responsable technique de la société Anaska,
--------> spécialisée à la formation aux techonologies Open Source.
ISBN : 978-2-212-12211-4
Code Éditeur : G12211
Je donne ici ces quelques informations par respect à tous ceux et celles qui nous enseignent le scriptage en PHP, et aussi pour tout ceux et celles qui de près ou de loin s'intéressent au développement web au travers l'inévitable apprentissage de PHP. Un apprentissage qui je l'espère vous sera sympatique. PHP est est un beau langage, populaire et ouvert. Des sites de qualités seront écrits avec ce langage, orienté objet.
Considérant le 2ième paramètre lors de l'utilisation de la fonction, htmlspecialchars nous permets de voir les multiples possibilités de PHP, concernant l'affichage de script. Avec une vue plus complète nous pourrons donc passé à l'écriture de fonctions ou de classes personnelles, avec la capacité de structurer des zones de scripts orientés vers les enseignements et les échangent de données entrent utilisateurs.
Amicalement zardoz
++




