Après quelques recherches, je n'ai pas réussi à trouver de script satisfaisant pour convertir les entités déclaré dans la DTD XHTML Transitional en entités Unicode.
C'est très étrange : dans chaque script, chacun y vas de sa petite liste d'entités, et même si je n'ai aucune idée d'où ces listes peuvent bien sortir, elles sont systématiquement incomplètes !
Pourtant, ce n'est pas comme si cette liste était si compliqué à trouver : il suffit de regarder la Définition de Type de Document dont l'url se trouve dans la déclaration DOCTYPE de tout bon document XHTML Transitional.
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Et au tout début du document, ligne 24, se trouve les références vers les déclarations des entités :
- <!--================ Character mnemonic entities =========================-->
- <!ENTITY % HTMLlat1 PUBLIC
- "-//W3C//ENTITIES Latin 1 for XHTML//EN"
- "xhtml-lat1.ent">
- %HTMLlat1;
- <!ENTITY % HTMLsymbol PUBLIC
- "-//W3C//ENTITIES Symbols for XHTML//EN"
- "xhtml-symbol.ent">
- %HTMLsymbol;
- <!ENTITY % HTMLspecial PUBLIC
- "-//W3C//ENTITIES Special for XHTML//EN"
- "xhtml-special.ent">
- %HTMLspecial;
En partant de là, il nous suffit donc d'aller chercher les trois fichiers contenant la totalité des entités déclarés :
- http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent
- http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent
- http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent
La fonction PHP
J'ai donc rédigé cette fonction PHP qui prend en compte toutes les entités déclarés pour leurs substitutions en Unicode :
- <?php
- /**
- * Convertit toutes les entités déclarées dans la DTD XHTML Transitional en
- * entités Unicode. Si c'est pas triste de devoir en arriver là...<br/>
- * Section DTD :
- * <code>
- * <!--================ Character mnemonic entities =========================-->
- *
- * <!ENTITY % HTMLlat1 PUBLIC
- * "-//W3C//ENTITIES Latin 1 for XHTML//EN"
- * "xhtml-lat1.ent">
- * %HTMLlat1;
- *
- * <!ENTITY % HTMLsymbol PUBLIC
- * "-//W3C//ENTITIES Symbols for XHTML//EN"
- * "xhtml-symbol.ent">
- * %HTMLsymbol;
- *
- * <!ENTITY % HTMLspecial PUBLIC
- * "-//W3C//ENTITIES Special for XHTML//EN"
- * "xhtml-special.ent">
- * %HTMLspecial;
- * </code>
- * @author G. Qyy, <code[at]qyy.fr>
- * @copyright Copyright (c) 2010 G. Qyy
- * @license http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.html
- * @link http://blog.qyy.fr/2010/10/convertir-des-entites-xhtml-en-unicode.html
- * @link http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
- * @link http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent
- * @link http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent
- * @link http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent
- * @param string $chaine <p>
- * Une chaine contenant des entités déclarées dans la DTD XHTML Transitional
- * </p>
- * @return string La chaine fournit dont les entités déclarées dans la DTD
- * XHTML Transitional ont été convertis en entités Unicode.
- */
- function ConvertieEntiteVersUnicode($chaine)
- {
- $unicode = array(
- '"','&','<','>',''','Œ','œ','Š',
- 'š','Ÿ','ˆ','˜',' ',' ',' ',
- '‌','‍','‎','‏','–','—','‘',
- '’','‚','“','”','„','†','‡',
- '‰','‹','›','€',' ','¡','¢',
- '£','¤','¥','¦','§','¨','©','ª',
- '«','¬','­','®','¯','°','±','²',
- '³','´','µ','¶','·','¸','¹','º',
- '»','¼','½','¾','¿','À','Á','Â',
- 'Ã','Ä','Å','Æ','Ç','È','É','Ê',
- 'Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò',
- 'Ó','Ô','Õ','Ö','×','Ø','Ù','Ú',
- 'Û','Ü','Ý','Þ','ß','à','á','â',
- 'ã','ä','å','æ','ç','è','é','ê',
- 'ë','ì','í','î','ï','ð','ñ','ò',
- 'ó','ô','õ','ö','÷','ø','ù','ú',
- 'û','ü','ý','þ','ÿ','ƒ','Α','Β',
- 'Γ','Δ','Ε','Ζ','Η','Θ','Ι','Κ',
- 'Λ','Μ','Ν','Ξ','Ο','Π','Ρ','Σ',
- 'Τ','Υ','Φ','Χ','Ψ','Ω','α','β',
- 'γ','δ','ε','ζ','η','θ','ι','κ',
- 'λ','μ','ν','ξ','ο','π','ρ','ς',
- 'σ','τ','υ','φ','χ','ψ','ω','ϑ',
- 'ϒ','ϖ','•','…','′','″','‾',
- '⁄','℘','ℑ','ℜ','™','ℵ','←',
- '↑','→','↓','↔','↵','⇐','⇑',
- '⇒','⇓','⇔','∀','∂','∃','∅',
- '∇','∈','∉','∋','∏','∑','−',
- '∗','√','∝','∞','∠','∧','∨',
- '∩','∪','∫','∴','∼','≅','≈',
- '≠','≡','≤','≥','⊂','⊃','⊄',
- '⊆','⊇','⊕','⊗','⊥','⋅','⌈',
- '⌉','⌊','⌋','〈','〉','◊','♠',
- '♣','♥','♦'
- );
- $entite = array(
- '"','&','<','>',''','Œ','œ','Š',
- 'š','Ÿ','ˆ','˜',' ',' ',' ',
- '‌','‍','‎','‏','–','—','‘','’',
- '‚','“','”','„','†','‡','‰',
- '‹','›','€',' ','¡','¢','£',
- '¤','¥','¦','§','¨','©','ª',
- '«','¬','­','®','¯','°','±','²',
- '³','´','µ','¶','·','¸','¹',
- 'º','»','¼','½','¾','¿','À',
- 'Á','Â','Ã','Ä','Å','Æ','Ç',
- 'È','É','Ê','Ë','Ì','Í','Î',
- 'Ï','Ð','Ñ','Ò','Ó','Ô','Õ',
- 'Ö','×','Ø','Ù','Ú','Û','Ü',
- 'Ý','Þ','ß','à','á','â','ã',
- 'ä','å','æ','ç','è','é','ê',
- 'ë','ì','í','î','ï','ð','ñ',
- 'ò','ó','ô','õ','ö','÷','ø',
- 'ù','ú','û','ü','ý','þ','ÿ',
- 'ƒ','Α','Β','Γ','Δ','Ε','Ζ',
- 'Η','Θ','Ι','Κ','Λ','Μ','Ν','Ξ',
- 'Ο','Π','Ρ','Σ','Τ','Υ','Φ','Χ',
- 'Ψ','Ω','α','β','γ','δ','ε',
- 'ζ','η','θ','ι','κ','λ','μ','ν',
- 'ξ','ο','π','ρ','ς','σ','τ',
- 'υ','φ','χ','ψ','ω','ϑ','ϒ',
- 'ϖ','•','…','′','″','‾','⁄',
- '℘','ℑ','ℜ','™','ℵ','←','↑',
- '→','↓','↔','↵','⇐','⇑','⇒','⇓',
- '⇔','∀','∂','∃','∅','∇','∈',
- '∉','∋','∏','∑','−','∗','√','∝',
- '∞','∠','∧','∨','∩','∪','∫','∴',
- '∼','≅','≈','≠','≡','≤','≥','⊂','⊃',
- '⊄','⊆','⊇','⊕','⊗','⊥','⋅',
- '⌈','⌉','⌊','⌋','⟨','⟩','◊',
- '♠','♣','♥','♦'
- );
- $chaine = str_replace($entite, $unicode, $chaine);
- return $chaine;
- }
- ?>
Droit d'auteur / propriété intellectuelle :
Sauf mention contraire cet article et son contenu sont régis par les conditions suivantes :
Tout contenu tiers est régi par les conditions des ayants droit.
Tout autre contenu ou ressource est soumis à l'acceptation du contrat Creative Commons by-nc-nd (Paternité - Pas d'Utilisation Commerciale - Pas de Modification).
Tout autre code source est soumis à l'acceptation du Contrat de Licence de Logiciel Libre CeCILL-B
En cas de non acceptation de tout ou partie des conditions (incluant celles des contenus tiers), le contenu de cet article reste la propriété morale et patrimoniale de son auteur, et tout usage non autorisé par écrit est explicitement proscrit.
Casino Near Me - Mapyro
RépondreSupprimerFind Casino Near Me, Minnesota, United States 의왕 출장안마 - Find your 서울특별 출장마사지 way around the casino, find 남원 출장안마 where 인천광역 출장마사지 everything is located with Mapyro®. Find your way 김천 출장안마 around the casino, find where everything is
Thanks for postiing this
RépondreSupprimer