Qu'est-ce que le format de fichier PHTML ?
Un fichier .phtml est un script PHP côté serveur qui mélange des balises HTML avec des blocs de code PHP, fonctionnellement identique à un fichier .php standard. La seule différence significative est l'extension du fichier.
Lorsqu'un serveur web reçoit une requête pour un fichier .phtml, il passe le fichier par l'interprète PHP. PHP exécute les blocs <?php ... ?> intégrés et émet le HTML résultant vers le navigateur du client - le navigateur ne voit jamais la source PHP. Pour que cela fonctionne, le serveur doit être explicitement configuré pour traiter le .phtml comme du PHP. Dans Apache, cela nécessite une directive AddHandler application/x-httpd-php .phtml (dans .htaccess ou httpd.conf) ; dans Nginx, un mappage fastcgi_param correspondant est nécessaire. Sans cette configuration, le serveur peut livrer la source PHP brute aux visiteurs, ce qui constitue un risque de divulgation d'informations.
L'extension .phtml est apparue à la fin des années 1990, à l'époque de PHP 3 / début de Zend Engine, lorsque le PHP était couramment intégré directement dans les fichiers de modèles HTML. Elle a été adoptée durablement dans le Zend Framework et reste activement utilisée dans Magento (désormais Adobe Commerce) pour ses fichiers de modèles de la couche vue.
D'un point de vue sécurité, le .phtml est une cible classique de contournement d'upload de fichiers : les filtres qui bloquent les téléchargements .php ignorent souvent les variantes .phtml, .php5, .php3, permettant ainsi l'exécution arbitraire de PHP.
Les formats associés incluent les scripts .php classiques et les fichiers .phps (affichage de la source PHP). Il n'y a pas d'octets magiques ni de versionnage interne ; la version de l'environnement d'exécution PHP est entièrement déterminée par la configuration du serveur.
Sécurité et sûreté
RISQUE : HIGHLes fichiers .phtml exécutent du code PHP arbitraire sur le serveur - même risque que le .php. Problèmes de sécurité critiques : (1) Si un formulaire d'upload sur une application web autorise les fichiers .phtml tout en bloquant les .php, un attaquant peut téléverser un webshell PHP avec une extension .phtml et obtenir une exécution de code à distance. (2) Si un serveur expose par inadvertance la source .phtml (pas de gestionnaire PHP configuré), les identifiants et chaînes de connexion à la base de données deviennent publics. Les administrateurs système doivent : lister explicitement .phtml dans la config du gestionnaire PHP, et refuser l'exécution de scripts dans les répertoires d'upload pour .php, .phtml, .phar, .php3, .php4, .php5.
Détails du format
en brefProgrammes qui ouvrent les fichiers PHTML
Détails techniques
spécifications approfondies| Modèle d'exécution | Traité côté serveur par l'interprète PHP ; le client ne reçoit que le rendu HTML |
| Encodage | Texte brut, UTF-8 recommandé ; historiquement ASCII ou Latin-1 |
| Délimiteurs de code | <?php ... ?> (standard) ; <?= ... ?> (écho court) ; <? ... ?> (balise courte, obsolète) |
| Type MIME | application/x-httpd-php ; également text/html et text/x-php selon la config serveur |
| Configuration Apache | AddHandler application/x-httpd-php .phtml dans .htaccess ou httpd.conf requis pour l'exécution |
| Configuration Nginx | Mappage fastcgi_param ou bloc location associant .phtml à PHP-FPM requis |
| Cas d'utilisation principal | Modèles de la couche vue Magento (Adobe Commerce) ; vues héritées du Zend Framework |
| Différence fonctionnelle avec .php | Aucune - le traitement est identique ; seule l'extension de fichier diffère |
| Risque de sécurité | Contournement classique de filtre d'upload : bloque .php mais peut oublier .phtml, permettant l'exécution de PHP arbitraire |
| Taille de fichier | 1 Ko - 500 Ko typique |
| Versions PHP supportées | Compatible de PHP 4 à PHP 8.x ; aucun changement de format entre les versions |
| OS associés | Linux (Apache/Nginx), Windows (IIS/Apache), macOS |
| Publié | circa 1997-1998 (early PHP 3/Zend era) |
| Dernière version | PHP 8.x (2024); .phtml itself has no versioning |
| Spécification | www.php.net |
Conversions PHTML
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers PHTML.