web-dev-qa-db-fra.com

Côté serveur Inclut les travaux en HTML et PHP avec IIS 7 sur Windows Server 2008

SSI est actuellement configuré pour fonctionner dans nos pages HTML comme suit

<!--#INCLUDE file="/includes/header.inc"-->

Nous utilisons également PHP sur notre serveur et nous essayons d'éviter de créer deux modèles distincts pour PHP et HTML afin d'inclure le même fichier. Je sais que, dans PHP, je pourrais inclure le fichier avec la commande suivante.

include 'header.inc';

Cela ne fonctionnera pas dans une page HTML, est-il donc possible de configurer IIS 7 pour que la directive #include fonctionne dans les pages HTML et PHP? Y a-t-il une meilleure façon de faire cette période?

2
Blake Plumb

Cela ne fonctionnera pas dans une page HTML, il est donc possible de configurer IIS 7 pour que la directive #include fonctionne dans les deux codes HTML. et PHP pages? Y a-t-il une meilleure façon de faire cette période?

Ce qui pourrait vous simplifier la tâche dans l’ensemble serait de configurer IIS pour utiliser PHP le code contenu dans les fichiers .html au lieu de .php. Ensuite, vous pourrez utiliser le code PHP directement dans vos pages HTML et utiliser soit la directive #include, soit le code PHP include.

Pour ce faire, dans IIS 7, suivez les étapes décrites ici: Configurez IIS pour gérer PHP Requests , mais modifiez-le: Request path: *.php à -> Request path: *.html

5
dan

Je pense que votre instinct est juste Blake, évitez d’ajouter .html/.htm au moteur PHP si ce n’est pas absolument nécessaire. La documentation de PHP évoque légèrement le fait que cela pourrait avoir un impact sur les performances, mais n'entre pas dans les détails ... dans un article sur le fait de cacher PHP aux attaquants/visiteurs .

Voir PHP Documentation: Masquer PHP

Votre question, basée sur la ligne d'objet de ce fil, est déduite de la manière suivante: [Y at-il] inclut ce travail en HTML et PHP dans IIS 7 sous Windows Serveur 2008 [?] .

Si SSI est déjà activé sur IIS, cela ne fonctionne-t-il pas déjà dans PHP en tant que HTML normal, comme vous l'avez fait? Ou cherchez-vous encore une troisième option d'inclusion qui ne soit pas un module SSI ou une fonction PHP engine/include qui fonctionne à la fois en HTML et en code PHP? Si SSI fait ce que vous voulez, et , vous l'avez déjà chargé sur votre serveur Windows et a du temps et des ressources consacrés au développement et à la sécurisation, ET cela fonctionne avec PHP, pourquoi chercher une autre option? Je ne veux pas dire que ce soit une confrontation, juste pour en apprendre un peu plus sur le problème que vous essayez de résoudre.

Sinon, cela fonctionne de la même manière:

. Fichiers HTML

<!--#INCLUDE file="/includes/header.inc"-->

. Fichiers php

<?php
echo "<!--#INCLUDE file=\"/includes/header.inc\"-->\n";
?>
0
Eric