| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?php
- /**
- * Classe `xml`
- *
- * Cette classe fournit des outils pour manipuler et afficher des données XML de manière formatée.
- *
- * Fonctionnalités principales :
- * - Affichage d'une chaîne XML formatée et colorée pour une meilleure lisibilité.
- * - Application de styles CSS pour améliorer la présentation des données XML.
- *
- * @package Core\Class
- */
- class xml
- {
- /**
- * Affiche une chaîne XML formatée et colorée.
- *
- * Cette méthode utilise DOMDocument pour formater le XML et applique des styles CSS
- * pour une meilleure lisibilité dans un navigateur web.
- *
- * @param string $_string La chaîne XML à afficher.
- * @return void
- */
- public static function print(string $_string)
- {
- // Utiliser DOMDocument pour rendre le XML lisible
- $dom = new DOMDocument();
- $dom->preserveWhiteSpace = false;
- $dom->formatOutput = true;
- $dom->loadXML($_string);
- // Obtenir le XML formaté
- $formatted_xml = htmlspecialchars($dom->saveXML());
- // Affichage du XML formaté avec du style CSS pour colorer les éléments XML
- header('Content-Type: text/html; charset=UTF-8');
- echo "<html><head>";
- // Ajouter du CSS pour colorer les éléments XML et gérer l'enroulement
- echo "
- <style>
- pre {
- font-family: 'Courier New', Courier, monospace;
- background-color: #f4f4f4;
- padding: 15px;
- border: 1px solid #ddd;
- white-space: pre-wrap; /* Permet l'enroulement du texte */
- word-wrap: break-word; /* Force l'enroulement sur les longs mots */
- overflow-wrap: break-word; /* Gère les débordements du texte */
- }
- .tag { color: #007700; } /* Couleur des balises */
- .attribute { color: #0000ff; } /* Couleur des attributs */
- .value { color: #dd0000; } /* Couleur des valeurs d'attribut */
- </style>
- ";
- echo "</head><body>";
- // Remplacer les éléments pour les colorier avec du CSS
- $formatted_xml = preg_replace('/(<\/?)(\w+)(.*?>)/', '<span class="tag">$1$2</span>$3', $formatted_xml);
- $formatted_xml = preg_replace('/(\w+)="(.*?)"/', '<span class="attribute">$1</span>="<span class="value">$2</span>"', $formatted_xml);
- // Afficher le XML formaté et coloré
- echo "<pre>" . $formatted_xml . "</pre>";
- echo "</body></html>";
- }
- }
|