O que é o formato de ficheiro PHTML?
Um arquivo .phtml é um script PHP do lado do servidor que mistura marcação HTML com blocos de código PHP, sendo funcionalmente idêntico a um arquivo .php padrão. A única diferença significativa é a extensão do arquivo.
Quando um servidor web recebe uma requisição para um arquivo .phtml, ele passa o arquivo pelo interpretador PHP. O PHP executa os blocos <?php ... ?> incorporados e emite o HTML resultante para o navegador do cliente - o navegador nunca vê o código-fonte PHP. Para que isso funcione, o servidor deve estar explicitamente configurado para tratar .phtml como PHP. No Apache, isso requer uma diretiva AddHandler application/x-httpd-php .phtml (no .htaccess ou httpd.conf); no Nginx, é necessário um mapeamento fastcgi_param correspondente. Sem essa configuração, o servidor pode entregar o código-fonte PHP bruto aos visitantes, o que representa um risco de exposição de informações.
A extensão .phtml originou-se no final da década de 1990, durante a era do PHP 3 / início da Zend Engine, quando o PHP era comumente incorporado diretamente em arquivos de template HTML. Ganhou adoção duradoura no Zend Framework e continua sendo usado ativamente no Magento (agora Adobe Commerce) para seus arquivos de template da camada de visualização (view).
Do ponto de vista da segurança, o .phtml é um alvo clássico para bypass de upload de arquivos: filtros que bloqueiam uploads de .php muitas vezes ignoram .phtml, .php5, .php3 e variantes semelhantes, permitindo a execução arbitrária de PHP.
Formatos relacionados incluem scripts .php puros e arquivos .phps (exibição de código-fonte PHP). Não existem magic bytes nem versionamento interno; a versão do runtime PHP é determinada inteiramente pela configuração do servidor.
Segurança e proteção
RISCO: HIGHArquivos .phtml executam código PHP arbitrário no servidor - mesmo risco que o .php. Problemas críticos de segurança: (1) Se um formulário de upload de arquivo em um app web permitir uploads de .phtml enquanto bloqueia .php, um invasor pode fazer upload de uma webshell PHP com extensão .phtml e obter execução remota de código no servidor. (2) Se um servidor expuser inadvertidamente o código-fonte .phtml (sem handler PHP configurado), credenciais e strings de conexão de banco de dados no código tornam-se públicas. Administradores de servidor devem: listar explicitamente .phtml na configuração do handler PHP e negar a execução de scripts em diretórios de upload para .php, .phtml, .phar, .php3, .php4, .php5.
Detalhes do formato
em resumoProgramas que abrem arquivos PHTML
Detalhes técnicos
especificação profunda| Modelo de execução | Processado no lado do servidor pelo interpretador PHP; o cliente recebe apenas a saída HTML renderizada |
| Codificação | Texto simples, UTF-8 recomendado; historicamente ASCII ou Latin-1 |
| Delimitadores de código | <?php ... ?> (padrão); <?= ... ?> (echo curto); <? ... ?> (tag curta, obsoleta) |
| Tipo MIME | application/x-httpd-php; também text/html e text/x-php dependendo da configuração do servidor |
| Configuração do Apache | AddHandler application/x-httpd-php .phtml no .htaccess ou httpd.conf é necessário para execução |
| Configuração do Nginx | Mapeamento fastcgi_param ou bloco location apontando .phtml para PHP-FPM é necessário |
| Caso de uso principal | Templates da camada de visualização do Magento (Adobe Commerce); views legadas do Zend Framework |
| Diferença funcional para .php | Nenhuma - o processamento é idêntico; apenas a extensão do arquivo difere |
| Risco de segurança | Bypass clássico de filtro de upload de arquivos: bloqueia .php mas pode ignorar .phtml, permitindo execução arbitrária de PHP |
| Tamanho do arquivo | 1 KB - 500 KB típico |
| Suporte a versões PHP | Compatível do PHP 4 ao PHP 8.x; sem mudanças de nível de formato entre versões |
| SO associado | Linux (Apache/Nginx), Windows (IIS/Apache), macOS |
| Lançado | circa 1997-1998 (early PHP 3/Zend era) |
| Versão mais recente | PHP 8.x (2024); .phtml itself has no versioning |
| Especificação | www.php.net |
Conversões de PHTML
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos PHTML.