¿Cómo incluir un archivo PHP en páginas SHTML?
Pregunta
Tengo un archivo shtml index.shtml en el que quiero incluir un archivo PHP que realiza alguna programación y devuelve datos HTML. Estoy tratando de incluir mi archivo PHP pero no sé cómo hacerlo, intenté seguir pero nada funciona,
La siguiente línea solo imprime un error, " [se produjo un error al procesar esta directiva] " ;:
<!--#include file="/SSI/test.php"-->
Esta línea muestra algunos caracteres basura:
<!--#include virtual="/SSI/test.php"-->
Esta línea no está haciendo nada y muestra el comando tal como está en la página .shtml
<?PHP
include("/SSI/test.php");
?>
Gracias
Solución
Si no hay una razón particular por la que esté usando .shtml aparte de lo que mencionó con respecto al tráfico, puede cambiar su procesamiento en su archivo .htaccess:
<Files *.shtml>
ForceType application/x-httpd-php
</Files>
O puede especificar ese archivo en particular:
<Files filename.shtml>
ForceType application/x-httpd-php
</Files>
Esto le indicará al servidor que analice el archivo .shtml como si fuera un archivo .php y, por lo tanto, cualquier comando PHP debe procesarse, como su declaración de inclusión. No es necesario cambiar la extensión del archivo.
Otros consejos
Podría estar equivocado, pero dado el error que está recibiendo, el problema puede no estar en la declaración de inclusión, sino que se incluye un error en el archivo php que está causando el problema.
No creo que puedas en Apache (no tengo idea de otros servidores web). La documentación de Apache dice que 'include_virtual' le permite incluir los resultados de un programa CGI; pero PHP no es una aplicación CGI en los términos de Apache: es manejada por un módulo diferente, de una manera diferente.
Colin
Para que el último funcione, simplemente cambie el nombre de su .shtml a .php, pero tenga en cuenta que eso detendrá el funcionamiento de cualquier shtml. Pero eso no debería ser un problema si también lo reescribe en php.
Editar desde su comentario:
Si ejecuta Apache, podría agregar lo siguiente en sus archivos .htacces y luego podría cambiar el nombre del archivo a .php
redirect permanent filename.shtml filename.php
Eso redirigirá a las personas que visiten example.com/filename.shtml a example.com/filename.php