2012-08-09 14 views
23

Ich habe eine Navigationsleiste, ein Bild und eine Überschrift, die ich auf jeder Seite meiner Website einfügen werde, also wollte ich mit php include auf mehreren Seiten auf diesen Code verweisen. Ich denke jedoch, dass ich die Syntax falsch habe oder etwas, weil es nichts rendert, wenn ich es lade. Hier sind einige Code-Schnipsel:PHP Include für HTML?

<!-- 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>'; 

    ?> 

Danke für die Hilfe!

+6

Es gibt keinen Grund, dies in einem PHP-Tag zu haben und 'echo' zu verwenden. Sie können es sogar einschließen, wenn es nur rohes HTML ist. ** Bearbeiten **: Das heißt, Ihr Code sieht gut aus. Haben Sie versucht, die Quelle zu sehen, und könnten Sie sie im OP veröffentlichen? ** Bearbeiten **: Vielleicht liegt es daran, dass PHP nicht auf Ihrem Server installiert ist und Ihr Browser die PHP-Tags nur als normale HTML-Tags darstellt (nichts). – h2ooooooo

+0

+1 wie Sie für die Kopf-und Körper-Tags – Waygood

+0

Sie könnten stattdessen eine Vorlage-Engine in Betracht ziehen. Schauen Sie sich Smarty, Twig oder Dwoo als Beispiel an. Es gibt eine Tonne mehr da draußen. – Crontab

Antwort

23

Sie können php Code in Dateien mit der Erweiterung .php und nur dort verwenden (wenn nicht andere in Ihren Servereinstellungen definiert ist).

einfach benennen Sie die Datei *.html zu *.php


Wenn Sie php Codeverarbeitung in Dateien von verschiedenen Formaten zu ermöglichen, haben Sie zwei Möglichkeiten, das zu tun:

1) httpd.conf Ändern zu ermöglichen dies für alle Projekte auf Ihrem Server, indem Sie hinzufügen:

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

2) Erstellen .htaccess Datei in Ihrem eigenen Projekt Top-Verzeichnis mit:

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

für die zweite Option, die Sie Verwendung von .htaccess Dateien in Ihrem httpd.conf erlauben müssen, indem Sie die folgenden Einstellungen hinzu:

AllowOverride All 
AccessFileName .htaccess 

* das ist richtig für Apache HTTP Server

+8

Falsch. Solange der Server so eingerichtet ist, dass er verschiedene Erweiterungen wie PHP-Dateien behandelt, können Sie PHP-Code in eine Datei mit der Erweiterung ** ANY ** einfügen (dh '.js',' .css', '.html' usw.).). – Matt

+0

Sie können PHP auch in Dateien mit anderen Erweiterungen verwenden. – jprofitt

+0

Eigentlich können Sie PHP wo immer Sie wollen verwenden. – Vatev

9

Sie müssen nicht die Informationen innerhalb der PHP-Datei widerhallen. Ein php include wird automatisch HTML in dieser Datei enthalten.

Stellen Sie sicher, dass Sie tatsächlich eine Indexdatei mit einer .php Erweiterung verwenden, .html funktioniert nicht mit PHP enthält. (Es sei denn, Sie teilen Ihrem Server mit, HTML-Dateien anderweitig zu behandeln)

Stellen Sie sicher, dass Ihre Pfade korrekt eingerichtet sind. Aus Ihrer Beschreibung, wie Sie es eingerichtet haben, sollten Ihre header.php/navbar.php/image.php Dateien in Ihrem Stammverzeichnis sein. Also Ihr Stammverzeichnis sollte wie folgt aussehen:

index.php
navbar.php
image.php
header.php

Andernfalls, wenn diese PHP-Dateien in einem Ordner sind /includes/ genannt, es ist wie so aussehen sollte:

<?php include ('includes/headings.php'); ?>

0

Erstens: was die sagten andere. Vergessen Sie die echo-Anweisung und schreiben Sie einfach Ihre navbar.php als normale HTML-Datei.

Zweitens: Ihre Include-Pfade sind wahrscheinlich durcheinander.Um sicherzustellen, dass Sie die Dateien enthalten, die in demselben Verzeichnis wie die aktuelle Datei, verwenden __DIR__:

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

Versuchen Sie, einige Debug-Informationen zu erhalten, könnte sein, dass der Dateipfad falsch ist, zum Beispiel.

Versuchen Sie diese zwei Dinge: - diese Zeile hinzufügen oben auf Ihrer Beispielseite:

<?php error_reporting(E_ALL);?> 

Dadurch werden alle Fehler/Warnungen/Hinweise auf der Seite drucken, so wenn es irgendein Problem Sie bekommen ist Textnachricht beschreibt es statt einer leeren Seite

Zusätzlich können Sie ändern include() erforderlich ist()

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

Dies wird einen fatalen err werfen oder PHP ist nicht in der Lage, die erforderlichen Seiten zu laden, und sollte Ihnen helfen, besser zu verfolgen, was falsch läuft.

Sie können die Fehlerbeschreibungen hier, wenn Sie irgendwelche, und Sie sind nicht in der Lage, herauszufinden, was es bedeutet ..

+0

Danke, aber wir haben es herausgefunden. Ich bin mir sicher, dass dies in Zukunft hilfreich sein wird! – sresht

1

Hier ist der Schritt für Schritt Prozess PHP-Code in hTML-Datei (Geprüft)

Wenn PHP dort arbeitet, ist nur ein Schritt nach links zu verwenden PHP-Skripte in Dateien mit * .html enthalten oder * .htm Erweiterungen auch. Das Zauberwort lautet ".htaccess". Bitte lesen Sie die Wikipedia-Definition von. Htaccess, um mehr darüber zu erfahren. Laut Wikipedia ist dies "eine Konfigurationsdatei auf Verzeichnisebene, die eine dezentrale Verwaltung der Webserver-Konfiguration ermöglicht."

Sie können wahrscheinlich eine solche .htaccess-Konfigurationsdatei für Ihren Zweck verwenden. In unserem Fall soll der Webserver HTML-Dateien wie PHP-Dateien analysieren.

Erstellen Sie zunächst eine leere Textdatei und nennen Sie sie ".htaccess". Sie könnten sich fragen, warum der Dateiname mit einem Punkt beginnt. Auf Unix-ähnlichen Systemen bedeutet dies, dass es sich bei einer Punktdatei um eine versteckte Datei handelt. (Hinweis: Wenn Ihr Betriebssystem keine Dateinamen zulässt, die mit einem Punkt beginnen, benennen Sie die Datei "xyz.htaccess" vorübergehend. Sobald Sie sie in einem späteren Schritt auf Ihren Webserver hochgeladen haben, können Sie die Datei online in " .htaccess ") Als nächstes öffnen Sie die Datei mit einem einfachen Texteditor wie der" Editor "in MS Windows. Fügen Sie die folgende Zeile in die Datei ein: AddType application/x-httpd-php .html .htm Wenn das nicht funktioniert, entfernen Sie bitte die obige Zeile aus Ihrer Datei und fügen Sie diese alternative Zeile ein, für PHP5: AddType-Anwendung/x-httpd-php5 .html .htm Laden Sie nun die .htaccess-Datei in das Stammverzeichnis Ihres Webservers hoch. Stellen Sie sicher, dass der Name der Datei ".htaccess" lautet. Ihr Webserver sollte nun * .htm und * .html Dateien wie PHP Dateien analysieren.

Sie können versuchen, wenn es funktioniert, indem Sie eine HTML-Datei wie folgt erstellen. Nennen Sie es „php-in-html-test.htm“, fügen Sie den folgenden Code ein und laden Sie sie in das Stammverzeichnis des Webservers:

<!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> 

versuchen, die Datei in Ihrem Browser zu öffnen, indem Sie in: http://www.your-domain.com/php-in-html-test.htm (Erneut bitte ersetzen Sie Ihre-domain.com durch Ihre eigene Domain ...) Wenn Ihr Browser die Phrase "Es funktioniert!" Alles funktioniert gut und Sie können ab sofort PHP in. * html und * .htm Dateien verwenden. Wenn nicht, versuchen Sie bitte, die alternative Zeile in der .htaccess-Datei zu verwenden, wie oben gezeigt.Wenn das immer noch nicht funktioniert, wenden Sie sich bitte an Ihren Hosting-Provider.

1

Ich fand eine einfache Lösung für die PHP-Include-Sachen. Benennen Sie einfach alle Ihre .html Dateien in .php um und es ist gut zu gehen.

0

Ich habe ein ähnliches Problem. Es scheint, dass PHP den PHP-Code in der enthaltenen Datei nicht mag. In Ihrem Fall ist die Lösung ziemlich einfach. Entfernen Sie PHP-Code aus der navbar.php, lassen Sie einfach HTML-Code und es funktioniert.

+0

Das beantwortet die Frage nicht wirklich. Wenn Sie eine andere Frage haben, können Sie sie durch Klicken auf [Frage stellen] (https://stackoverflow.com/questions/ask) stellen. Sie können auch [Kopfgeld hinzufügen] (https://stackoverflow.com/help/privileges/set-bounties) hinzufügen, um mehr Aufmerksamkeit auf diese Frage zu lenken, sobald Sie genug [Reputation] haben (https://stackoverflow.com/help/ Whats-Reputation). - [Aus Bewertung] (/ review/low-quality-posts/17479786) –