2009-05-08 8 views
3

Ich habe eine shtml-Datei index.shtml, in die ich eine PHP-Datei aufnehmen möchte, die etwas Programmierung durchführt und HTML-Daten zurückgibt. Ich versuche, meine PHP-Datei zu integrieren, aber ich weiß nicht, wie das geht, habe ich versucht, aber nichts funktioniert,Wie kann man PHP-Dateien in SHTML-Seiten einbinden?

folgende Zeile ist nur einen Fehler drucken, "[ein Fehler trat bei der Verarbeitung dieser Anweisung] „:

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

Diese Zeile wird die Anzeige einige Junk-Zeichen:

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

Diese Linie nichts tut und Anzeigen der Befehl wie in der Shtml Seite ist

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

Dank

Antwort

8

Wenn es keinen besonderen Grund ist, den Sie verwenden Shtml abgesehen von dem, was Sie erwähnt in Bezug auf Verkehr, können Sie die Verarbeitung in der .htaccess-Datei ändern:

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

Oder Sie können angeben, dass die Datei insbesondere:

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

Dieser dem Server mitteilen, wird die Shtml zu analysieren, wie es eine Php-Datei war, und daher sollten alle PHP-Befehle Vorarb sein sed, wie Ihre Include-Anweisung. Keine Notwendigkeit, die Dateierweiterung zu ändern.

+1

Dies führt dazu, dass die Webseite für mich heruntergeladen wird –

0

Für die letzte Ihre Shtml arbeiten einfach umbenennen in .php aber beachten Sie, dass das von der Arbeit jede shtml dort zu stoppen. Aber das sollte kein Problem sein, wenn Sie das auch in PHP umschreiben.

Bearbeiten von Ihren Kommentar:
Wenn Sie Apache laufen Sie folgende in Ihrer .htacces hinzufügen könnte und dann könnten Sie die Datei

redirect permanent filename.shtml filename.php 

in .php umbenennen, dass die Menschen umleitet example.com/ Besuch filename.shtml zu example.com/filename.php

+0

Ich möchte meine .shtml zu .php caz nicht umbenennen, ich bekomme bereits viel Verkehr von diesem Link und ich werde kein Risiko für Dateinamen nehmen. – Prashant

+2

Eine Weiterleitung ändert das nicht, es ist genau dafür gedacht – Evert

0

Ich glaube nicht, dass Sie in Apache (ich habe keine Ahnung von anderen Webservern). The Apache documentation sagt, dass 'include_virtual' Sie die Ergebnisse eines CGI-Programms einschließen können; Aber PHP ist keine CGI-Anwendung in Apache: es wird von einem anderen Modul auf eine andere Weise behandelt.

Colin

+0

PHP kann als CGI-Programm konfiguriert werden –

1

Ich könnte falsch liegen, aber angesichts des Fehlers, den Sie bekommen, kann das Problem nicht in der Include-Anweisung, sondern ein Fehler in der PHP-Datei enthalten sein, die das Problem verursacht.

Verwandte Themen