2009-05-08 9 views
3

J'ai un fichier shtml index.shtml dans lequel je veux inclure un fichier PHP qui effectue une programmation et retourne des données HTML. J'essaie d'inclure mon fichier PHP, mais je ne sais pas comment faire, j'ai essayé de suivre, mais rien ne fonctionne,Comment inclure le fichier PHP dans les pages SHTML?

La ligne suivante est juste l'impression d'une erreur, "[une erreur s'est produite lors du traitement de cette directive] « :

<!--#include file="/SSI/test.php"--> 

Cette ligne affiche des caractères indésirables:

<!--#include virtual="/SSI/test.php"--> 

Cette ligne ne fait rien et l'affichage de la commande comme il est dans la page shtml

<?PHP 
    include("/SSI/test.php"); 
?> 

Merci

Répondre

8

S'il n'y a aucune raison particulière que vous utilisez Shtml en dehors de ce que vous avez mentionné au sujet du trafic, vous pouvez modifier son traitement dans votre fichier .htaccess:

<Files *.shtml> 
ForceType application/x-httpd-php 
</Files> 

Ou vous pouvez préciser ce fichier en particulier:

<Files filename.shtml> 
ForceType application/x-httpd-php 
</Files> 

Cela indique au serveur pour analyser le shtml comme il était un fichier .php, et donc toutes les commandes PHP doivent être procès- sed, comme votre déclaration d'inclusion. Pas besoin de changer l'extension du fichier.

+1

Il en résulte le téléchargement de la page Web pour moi –

0

Pour le dernier à travailler Renommez simplement votre Shtml .php mais notez que cela arrêtera toute shtml là-dedans de travailler. Mais cela ne devrait pas être un problème si vous aussi réécrire cela en php.

Modifier de votre commentaire:
Si vous exécutez apache vous pouvez ajouter ce qui suit dans votre .htaccess et vous pouvez renommer le fichier .php

redirect permanent filename.shtml filename.php 

qui redirigera les visiteurs example.com/ filename.shtml à example.com/filename.php

+0

Je ne veux pas renommer mon .shtml en .php caz, je reçois déjà beaucoup de trafic de ce lien et je ne veux pas prendre de risque sur le nom du fichier. – Prashant

+2

Une redirection ne changera pas cela, il est prévu exactement à cet effet – Evert

0

Je ne pense pas que vous pouvez dans Apache (je n'ai aucune idée d'autres serveurs Web). 'The Apache documentation indique que' include_virtual 'vous permet d'inclure les résultats d'un programme CGI; mais PHP n'est pas une application CGI dans les termes d'Apache: elle est gérée par un module différent, d'une manière différente.

Colin

+0

PHP peut être configuré en tant que programme CGI –

1

Je peux me tromper, mais compte tenu de l'erreur que vous obtenez, le problème peut ne pas figurer dans l'instruction include mais une erreur dans le fichier php à être à l'origine du problème.

Questions connexes