2010-12-16 8 views
0

私はいくつかのSSIを使用するサイトで作業しています。これらは静的なので、ページを.shtmlとして提供し、PHPインクルードに変換せず、.phpとしてください。問題は今、PHPのいくつかのコンテンツを動的に生成したいのですが、インクルードの1つです。次のことが正しい方向に進むか、他の/より良い解決策があるかどうか。私が現時点でやっていることは:SSIからPHPを組み込む正しい方法は何ですか

<!--test.shtml--> 
<!DOCTYPE html> 
<html lang="en" dir="ltr"> 
<body> 
<!--#include virtual="/test.php" --> 
</body> 
</html> 

<!--test.php--> 
<?php echo 'Hello from php'; ?> 

これはうまくいかないが、読んだところでは、それはApache 1.3を指していたと私は読んだ。家庭の私のサーバーでは、私はApache 2.を実行しています。それはうまく動作し、サイトがホストされるサーバー上でも動作します。 1.3で動作しなかったのですが、2で動作しますか?何とかラッキーになってしまって本当に別のやり方をしているはずですか?

私が生成しているコンテンツは、現在のページをハイライトするために、サイトのナビゲーションにCSSクラス/ IDを追加するだけです.PHPは最初に生成された後はかなり静的になるため、 PHPの出力を私が想定しているサーバーにキャッシュすることはできますが、最初にこれを行うより良い方法がありますか?

ありがとうございました。

EDIT - 私の代わりの方法の質問との回答ではありません。 私はおそらくもっと適していると分かりました(私は自分の状況のた​​めに牛が家に帰るまで議論することができると確信していますので、きれいに言うことをためらっています)。私は現在、サイト上の何かのためにPHPを使用していないので、私は今のところそれに固執します。それはDan M hereによって概説されているとおりです。これらは静的なので

+0

FYI、 '.shtml'は静的ではありません – ajreal

+0

@ajreal、ありがとうございますが、どんな意味ですか? SSIを変更するだけで、各ページのコンテンツを変更することができます。あるいは、あなたが '.shtml'でコンテンツを動的に生成できることを示唆していますか?申し訳ありませんが少し混乱しています。私は何か基本的なことを逃したのですか – tjm

+0

[何が.shtml](http://en.wikipedia.org/wiki/.shtml)。 phpスクリプトを含めることは、PHPが静的なhtml – ajreal

答えて

1

は、それはあなたがPHPエンジンを起動しているので、感覚 が、まあを.shtmlのようにページを提供していない PHPに変換含まれており、 の.php

として機能するようになりますどちらの場合でもページ全体を解析する必要がある場合は、両方とも.phpページは、Apache 1.xサーバーでも動作することが保証されているように、の方が意味があります。次に、キャッシュされたページを提案したとおりに.htmlとして出力し、その拡張子をDirectoryIndexに優先させることができます。

+0

これは、キャッシュされたページを.htmlとして返すというきちんとした考えです。それはページの解析に関して何が起こるのでしょうか?すべてのことを解析する必要があります、私はPHPファイルだけが解析され、その出力がSSIインクルードに戻ってページに追加されると仮定しました。 – tjm

+0

.shtmlページを解析してssiコメント文字列を見つけなければならないので、どちらの方法でも構文解析を避けることはできません。出力バッファリングを使用して結果をディスクに書き込むことができます。 http://php.net/manual/en/book.outcontrol.php – webbiedave

+0

また、phpが最初に返され、次にhtmlのコンテキストで解析された場合、サーバーはページを実行する必要があることをどのように知っていますかphp。自宅で少なくとも、私のサーバーはPHPで.shtmlを解析するように設定されていません。 PHPを.shtmlに直接組み込むことはできません。したがって、PHPが返された後に解析されている場合は、phpファイルが含まれているので、このページはPHPとして解析されるはずです。確かにそうならPHPを最初に解析してその出力を返すほうが理にかなっています。 – tjm

関連する問題