web-dev-qa-db-fra.com

PHP Inclure pour HTML?

J'ai une barre de navigation, une image et un en-tête que je vais inclure dans chaque page de mon site Web. Je voulais donc utiliser php include pour faire référence à ce code sur plusieurs pages. Cependant, je pense que la syntaxe peut être incorrecte ou quelque chose parce que cela ne restitue rien lorsque je le charge. Voici quelques extraits de code:

<!-- sample page --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html>  
<head>  
<?php include ('headings.php'); ?>
</head>
<body>
<?php include ('navbar.php'); ?>
<?php include ('image.php'); ?> 
</body>
</html>

navbar.php

    <?php 

    echo '<ul id="nav">
        <li>
            <a href="Home.html">Home</a>
        </li>
        <li>
            <a>About Me</a>
            <ul>
                <li>
                    <a href="Career.html">Career</a>
                </li>
                <li>
                    <a href="Coding.html">Coding</a>
                </li>
                <li>
                    <a href="Personal.html">Personal</a>
                </li>
            </ul>
        </li>
        <li>
            <a href="Travels.html">Travel</a>
        </li>
        <li>
            <a href="Contact.html">Contact</a>
        </li>
    </ul>';

    ?>

Merci pour ton aide!

23
sresht

Vous pouvez utiliser le code php dans les fichiers avec l'extension .php et uniquement là-bas (si un autre n'est pas défini dans les paramètres de votre serveur).

Renommez simplement votre fichier *.html en *.php


Si vous souhaitez autoriser le traitement de code php dans des fichiers de format différent, vous avez le choix entre deux options:

1) Modifier httpd.conf pour autoriser cela pour tous les projets sur votre serveur, en ajoutant:

AddHandler application/x-httpd-php .htm .html

2) Création du fichier .htaccess dans le répertoire principal de votre projet séparé avec:

<Files />
    AddType application/x-httpd-php .html
</Files>

Pour la deuxième option, vous devez autoriser l’utilisation de fichiers .htaccess dans votre httpd.conf en ajoutant les paramètres suivants:

AllowOverride All
AccessFileName .htaccess

* cela est correct pour Apache HTTP Server

24
Edward Ruchevits

Essayez d’obtenir des informations de débogage, par exemple si le chemin du fichier est incorrect.

Essayez ces deux choses: - Ajoutez cette ligne en haut de votre page exemple:

<?php error_reporting(E_ALL);?>

Cela imprimera toutes les erreurs/avertissements/avis de la page. Ainsi, s’il ya un problème, vous recevez un message texte le décrivant au lieu d’une page vierge.

De plus, vous pouvez changer include () to require ()

<?php require ('headings.php'); ?>
<?php require ('navbar.php'); ?>
<?php require ('image.php'); ?>

Cela provoquera une erreur FATAL PHP ne parvient pas à charger les pages requises et devrait vous aider à mieux tracer ce qui ne va pas.

Vous pouvez poster les descriptions d'erreur ici, si vous en avez, et vous êtes incapable de comprendre ce que cela signifie.

4
raidenace

Voici le processus étape par étape pour inclure le code php dans un fichier html (testé)

Si PHP fonctionne, il ne reste plus qu'une étape pour utiliser les scripts PHP dans les fichiers avec les extensions * .html ou * .htm. Le mot magique est ".htaccess". Veuillez consulter la définition de .htaccess dans Wikipedia pour en savoir plus. Selon Wikipedia, il s'agit "d'un fichier de configuration au niveau du répertoire qui permet une gestion décentralisée de la configuration du serveur Web".

Vous pouvez probablement utiliser un tel fichier de configuration .htaccess à cette fin. Dans notre cas, vous souhaitez que le serveur Web analyse les fichiers HTML tels que les fichiers PHP.

Commencez par créer un fichier texte vierge et nommez-le ".htaccess". Vous pourriez vous demander pourquoi le nom de fichier commence par un point. Sur les systèmes de type Unix, cela signifie qu’il s’agit d’un fichier point qui est un fichier caché . (Remarque: si votre système d’exploitation n’autorise pas les noms de fichiers commençant par un point, nommez-le temporairement le fichier "xyz.htaccess". comme vous l'avez chargé ultérieurement sur votre serveur Web, vous pouvez renommer le fichier en ligne en ".htaccess") Ouvrez ensuite le fichier avec un simple éditeur de texte tel que "Editeur" dans MS Windows. Collez la ligne suivante dans le fichier: AddType application/x-httpd-php .html .htm Si cela ne fonctionne pas, veuillez supprimer la ligne ci-dessus de votre fichier et y coller cette autre ligne, pour PHP5. : AddType application/x-httpd-php5 .html .htm Téléchargez maintenant le fichier .htaccess dans le répertoire racine de votre serveur Web. Assurez-vous que le nom du fichier est ".htaccess". Votre serveur Web doit maintenant analyser les fichiers * .htm et * .html tels que les fichiers PHP.

Vous pouvez essayer si cela fonctionne en créant un fichier HTML comme suit. Nommez-le "php-in-html-test.htm", collez-y le code suivant et chargez-le dans le répertoire racine de votre serveur Web:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
     <HTML>
 <HEAD>
 <TITLE>Use PHP in HTML files</TITLE>
 </HEAD>

   <BODY>
    <h1>
    <?php echo "It works!"; ?>
    </h1>
  </BODY>
 </HTML>

Essayez d'ouvrir le fichier dans votre navigateur en tapant: http://www.votre-domaine.com/php-in-html-test.htm (encore une fois, remplacez votre-domaine.com par votre votre propre domaine ...) Si votre navigateur affiche la phrase "Cela fonctionne!" tout fonctionne bien et vous pouvez désormais utiliser PHP dans les fichiers. * html et * .htm. Cependant, si ce n’est pas le cas, essayez d’utiliser la ligne de remplacement du fichier .htaccess, comme indiqué ci-dessus. Si cela ne fonctionne toujours pas, veuillez contacter votre fournisseur d'hébergement.

1
napender

J'ai imaginé une solution simple à l'inclusion de PHP. Renommez simplement tous vos fichiers .html en .php et vous êtes prêt à partir.

1
chitech

Premièrement: ce que les autres ont dit. Oubliez l'instruction echo et écrivez votre fichier navbar.php en tant que fichier HTML normal.

Deuxièmement: vos chemins d'inclusion sont probablement foirés. Pour vous assurer d'inclure les fichiers qui se trouvent dans le même répertoire que le fichier actuel, utilisez __DIR__:

include __DIR__.'/navbar.php'; // PHP 5.3 and later
include dirname(__FILE__).'/navbar.php'; // PHP 5.2
0
Rudolph Gottesheim

J'ai un problème similaire. Il semble que PHP n'aime pas le code PHP dans le fichier inclus. Dans votre cas, la solution est assez simple. Supprimez le code php de navbar.php, laissez-y simplement du HTML pur et cela fonctionnera.

0
Alex S