3

いくつかのプログラミングを実行して HTML データを返す PHP ファイルをインクルードしたい shtml ファイル index.shtml があります。PHP ファイルをインクルードしようとしていますが、その方法がわかりません。以下を試しましたが、何も機能しません。

次の行は、「[このディレクティブの処理中にエラーが発生しました]」というエラーを出力しているだけです。

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

この行には、いくつかのジャンク文字が表示されています:

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

この行は何もせず、コマンドをそのまま .shtml ページに表示しています。

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

ありがとう

4

4 に答える 4

8

トラフィックに関して言及したこと以外に .shtml を使用している特別な理由がない場合は、.htaccess ファイルでその処理を変更できます。

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

または、特にそのファイルを指定できます。

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

これにより、.php ファイルのように .shtml を解析するようにサーバーに指示されるため、include ステートメントなどのすべての PHP コマンドを処理する必要があります。ファイル拡張子を変更する必要はありません。

于 2009-05-08T18:38:11.667 に答える
1

私は間違っている可能性がありますが、発生しているエラーを考えると、問題はincludeステートメントではなく、問題の原因となっているインクルードされるphpファイルのエラーである可能性があります。

于 2011-03-16T03:41:53.450 に答える
0

最後に、.shtml の名前を .php に変更するだけで機能しますが、そこにある shtml が機能しなくなることに注意してください。しかし、それもphpに書き直せば問題ないはずです。

コメントから編集:
apache を実行する場合は、.htacces に以下を追加して、ファイルの名前を .php に変更できます。

 redirect permanent filename.shtml filename.php

これにより、example.com/filename.shtml にアクセスした人は example.com/filename.php にリダイレクトされます。

于 2009-05-08T10:54:31.743 に答える
0

Apache ではできないと思います (他の Web サーバーについてはわかりません)。Apache のドキュメントによると、'include_virtual' を使用すると、CGI プログラムの結果を含めることができます。しかし、Apache の用語で言えば、PHP は CGI アプリケーションではありません。PHP は別のモジュールによって別の方法で処理されます。

コリン

于 2009-05-08T11:43:06.393 に答える