ホームページ > バックエンド開発 > PHPチュートリアル > SSI コマンド_PHP チュートリアル

SSI コマンド_PHP チュートリアル

WBOY
リリース: 2016-07-21 16:00:04
オリジナル
889 人が閲覧しました

SHTML とは
SSI (サーバー サイド インクルード) の html ファイル拡張子を使用します。SSI (サーバー サイド インクルード) は、通常「サーバー サイド
埋め込み」または「サーバー サイド インクルード」と呼ばれ、ASP に似たサーバーベースの埋め込みです。 Webページ制作技術。
SSI の仕組み:
サーバーサイド インクルード (SSI) ディレクティブを使用すると、
コンテンツをブラウザーに送信する前に、テキスト、グラフィック、またはアプリケーション情報を Web ページに含めることができます。たとえば、SSI を使用して、時刻/日付スタンプ、著作権表示、または顧客が記入して返送するためのフォームを含めることができます。インクルード ファイルを使用すると、複数のファイルで繰り返し出現するテキストやグラフィックに
を使用する簡単な方法です。コンテンツを
all ファイルにインポートする代わりに、コンテンツをインクルード ファイルに保存するだけです。インクルード ファイルは非常に単純なステートメントで呼び出され、Web サーバーにコンテンツを適切な Web ページに挿入するよう指示します。そして、
インクルード ファイルを使用する場合、コンテンツへのすべての変更は 1 か所で行うだけで済みます。
SSI ディレクティブを含むファイルには特別な処理が必要なため、すべての SSI ファイルには SSI ファイル拡張子を付ける必要があります。デフォルトの拡張子は
.stm、.shtm、および .shtml です。
Web サーバーは、Web ページの処理中に SSI コマンドを処理します。 Web サーバーは SSI コマンドを検出すると、含まれているファイルのコンテンツを HTML Web ページに直接挿入します。 「インクルードファイル」に SSI ディレクティブが含まれている場合、このファイルも挿入されます。ファイルをインクルードするための基本的なコマンドに加えて、SSI コマンドを使用してファイルに関する情報 (ファイルのサイズなど) を挿入したり、アプリケーションやシェル コマンドを実行したりすることもできます。
ウェブサイトのメンテナンスでよく遭遇する問題は、ウェブサイトの構造は修正されているものの、少しのコンテンツを更新するために大量のウェブページをやり直さなければならないことです。
SSI は、この問題を解決するためのシンプルで効果的な方法を提供します。これにより、Web サイトの基本構造がいくつかの単純な HTML ファイル (
テンプレート) に組み込まれます。今後は、テキストをサーバーに渡すだけで済みます。プログラムにテンプレートに基づいて Web ページを自動的に生成させ、大規模な Web サイトの管理を容易にします。
つまり、SHTML形式を使用したページの目的はASPと似ていますが、APIであるため、より高速かつ効率的に実行され、ASPよりも速く、HTMLよりは遅くなります
が、サーバーサイドのインクルードが使用できるため、ページの更新が簡単 (特にバナーや著作権などのバッチ更新)、HTML の一部があり、他の HTML 段落を挿入するなど、特別なサーバー側スクリプトを途中に挿入したいとします。ASP を選択します。このタスクを完了するのに時間がかかる場合は、たとえば 5 秒かかります。このとき、ASP は必要ありませんが、SHTML を使用すると、処理時間はわずか 4 秒になる可能性があります。
SSI は何に使用されますか?
SSI について言及しなければならない理由は、Shtml (Server-Parsed HTML の頭字語) であるためです。組み込みサーバー用のコマンド
を含む HTML テキストが含まれます。 SHTML ドキュメントは、ブラウザに送信される前にサーバーによって完全に読み取られ、分析され、変更されます。 shtml
は asp に似ています。shtml という名前のファイルは、asp の命令と同じように、いくつかの SSI 命令を使用します。クライアントがこれらの shtml ファイルにアクセスすると、サーバーはこれらの SHTML ファイルを読み取って解釈します。たとえば、SSI 命令を使用して SHTML ファイル内の他の HTML ファイル (#include) を参照することができ、サーバーはクライアントに送信されたファイルはすでに SHTML として解釈されています。 SSI ディレクティブがありません。 HTMLにはない機能、つまり動的なSHTMLを実現できるHTMLの進化版と言えます。 Sina のニュース システムはこんな感じです。ニュースの内容は固定ですが、掲載されている広告やメニューは #include で参照します。
現時点では主に以下の用途があります:
サーバー側の環境変数を表示<#echo>
ドキュメントにテキストコンテンツを直接挿入<#include>
WEBドキュメントに関する情報を表示<#flastmod #fsize>
サーバー上の各種プログラムを直接実行<#exec>(CGIやその他の実行可能プログラムなど)
SSI情報の表示形式を設定<#config>(ファイルの作成日時/サイズの表示方法など)
Advanced SSI では、if 条件文を使用して変数を設定できます。
SSI を使用する
SSI は、WEB サーバー用に提供されるコマンドのセットであり、これらのコマンドは HTML ドキュメントのコメント コンテンツに直接埋め込むことができます。例:

は、訪問者が来たときに「info.htm」の内容を現在のページにコピーする機能です。参照するには クリックすると、他の
HTML ドキュメントと同様に、info.htm のコンテンツが表示されます。他の SSI コマンドの使用形式も基本的には先ほどの例と同じで、SSI の使用方法は少しコードを挿入するだけで、非常にシンプルであることがわかります。もちろん、WEB サーバーが SSI をサポートしていない場合、ブラウザはそれを注釈情報として扱い、コンテンツを直接スキップします。また、ブラウザはこの情報を無視します。
WEBサーバーでSSI機能を設定するにはどうすればよいですか?
一部の WEB サーバー (IIS 4.0/SAMBAR 4.2 など) では、#include ディレクティブを含むファイルは、SSI インタープリター
プログラムにマップされた拡張子を使用する必要があります。そうしないと、Web サーバーはデフォルトで SSI ディレクティブを処理しません。拡張子 .stm、.shtm、および .shtml はインタープリター (Ssinc.dll) にマップされます。
Apache は設定に応じて次のように srm.conf を変更します。
AddType text/x-server-parsed-html .shtml は .shtml 拡張子を持つファイルの SSI 命令のみを解析します
AddType text/x-server -parsed-html 。 html は、すべての HTML ドキュメントの SSI 命令を解析します。
Netscape WEB サーバーは、管理サーバーを直接使用して SSI 機能を有効にすることができます。
Web サイトはサーバー管理プログラムのマッピング タグを使用しており、拡張機能で追加されたコンテンツ タイプは次のとおりです: wwwserver/html-ssi
Cern サーバーは SSI をサポートしていません。SSI 詐欺手法を使用できます。http://sw.cse にアクセスしてください。 .bris.ac.uk/ WebTools/fakessi.html から PERL スクリプトをダウンロードして、CERN サーバーでいくつかの SSI コマンドを使用できるようにします。 (execコマンドは未サポートです。)
SSIコマンドの基本形式
プログラムコード:
は HTML 構文のコメントです。WEB サーバーが SSI をサポートしていない場合、この情報は無視されます。
#include は SSI 命令の 1 つです。
file は include のパラメータ、info.htm はパラメータ値で、このコマンドではインクルードするドキュメントの名前を指します。
注:
句読点「」が 1 つもありません。
SSI コマンドは大文字と小文字が区別されるため、パラメータが機能するには小文字である必要があります。
SSIコマンドの使い方の詳しい説明
#echoのデモ
機能: ページに環境変数を挿入します。
構文:
<--#echo var="変数名"-->
例:
<--#echo var="DOCUMENT_NAME"--> このドキュメントの名前
現在時刻
IP アドレス
#include デモ
機能: テキスト ファイルの内容をドキュメントページ。
構文:


file ファイル名は相対パスです。 #include ディレクティブを使用して、ドキュメントを含むディレクトリを基準にします。インクルードされたファイルは、同じ第 1 レベルのディレクトリまたはそのサブディレクトリに存在できますが、上位レベルのディレクトリには存在できません。現在のディレクトリ内の nav_head.htm ドキュメントを表す場合、それは
file="nav_head.htm" です。
仮想ファイル名は、Web サイト上の仮想ディレクトリへのフルパスです。たとえば、これは、サーバードキュメントルートディレクトリの下の hoyi ディレクトリにある
nav_head.htm ファイルに対する相対を意味します。file="/hoyi/nav_head.htm" です。
パラメータ:
file は、含まれるファイルの相対的な場所を指定します。このドキュメント
仮想は、サーバー ドキュメントのルート ディレクトリの場所に相対的に指定されます
注:
ファイル名には拡張子が必要です。
含まれるファイルには任意のファイル拡張子を付けることができますが、htm 拡張子を直接使用するのが最も便利だと思います
(好みによって異なります)。
例:
現在のページにヘッダー ファイルを挿入します
末尾 現在のページにファイルを挿入します
#flastmod と #fsize のデモンストレーション
関数:
#flastmod ファイルの最終更新日
#fsize ファイルの長さ
構文:


パラメータ:
file は、このドキュメントに対する相対的なファイルの場所を指定します。
virtual は、現在のディレクトリ内の info.txt ドキュメントの場所を指定します。サーバー ドキュメントのルート ディレクトリの場所は、/hoyi/info.txt で表されます。
例:
現在のディレクトリにある news.htm ファイルの最新更新日を現在のページに挿入します
現在のディレクトリにある news.htm のファイル サイズを現在のページに挿入します
#exec デモ
機能: 外部プログラムの出力をページに挿入します。使用される
パラメータが cmd か cgi かに応じて、CGI プログラムに挿入したり、通常のアプリケーションへの入力として挿入したりできます。
構文:


cmd 通常のアプリケーション
cgi CGI スクリプトプログラム
例:
はパスワード ファイルを表示します
現在のディレクトリ内のファイルのリストが表示されます
CGI プログラム gb.cgi が実行されます。
CGI プログラム access_log.cgi を実行します。
注: 上記の例からわかるように、このコマンドは非常に便利ですが、セキュリティの問題もあります。
禁止方法:
Apache、access.conf の「Options include ExecCGI」行を削除します。
IIS では、#exec コマンドを無効にするには、SSIExecDisable メタデータ データベースを変更します。
#config
関数:顧客のブラウザのエラー メッセージ、日付、ファイル サイズの形式。
構文:



パラメータ:
errmsg SSI実行エラーメッセージを任意にカスタマイズします。
sizefmt ファイル サイズ表示モード、デフォルトはバイト モード (「bytes」) で、キロバイト モード (「abbrev」) に変更できます。
timefmt 時間表示モード、最も柔軟な構成属性。
例: 存在しないファイルのサイズを表示する
-#fsize file="non-existent file.htm"-->
ファイル サイズをキロバイト単位で表示します
構文:


特定の時刻形式で時刻を表示します

今日を表示しますは曜日、月、タイムゾーンです
!--# echo var="DATE_LOCAL" -->
XSSI
XSSI (拡張 SSI) は、Apache 1.2 以降の mod-include モジュールに組み込まれている高度な SSI 命令のセットです。使用できるコマンドは以下の通りです:
#printenv
#set
#if
#printenv
機能: WEBサーバー環境に現在存在するすべての環境変数を表示します。
構文:

#set
機能: 後続の if ステートメントで使用するために変数に値を割り当てることができます。
構文:


例:

内容の表示

コンテンツを表示

コンテンツを表示

例:

Hoyi CGI Factory の Zibo Hotline ブランチへようこそ

* http://linux.cqi.com.cn/~hoyi にある Hoyi CGI Factory のブランチへようこそ。

Haoyi CGI Factory へようこそ!

注: 前のコマンドで使用されているバックスラッシュは、内部引用符を置き換えるために使用されます。これらは終了式として解釈されません。省略できません。
1. Config コマンド
Config コマンドは主に SSI のデフォルト設定を変更するために使用されます。その中には:
Errmsg: デフォルトのエラーメッセージを設定します。ユーザーが設定したエラー メッセージを正常に返すには、Errmsg パラメーターを HTML ファイル内の他の SSI コマンドの前に配置する必要があります。そうしないと、クライアントはユーザーが設定したカスタム メッセージではなく、デフォルトのエラー メッセージのみを表示できます。情報。

Timefmt: 日付と時刻に使用される形式を定義します。 Timefmt パラメータは echo コマンドの前に使用する必要があります。

表示される結果は次のとおりです。 2000 年 4 月 12 日水曜日
おそらくユーザーは、上記の例で使用されている %A %B %d に慣れていないかもしれません。以下では、SSI でよく使用される
日付と時刻の形式を表の形式でまとめます。
Sizefmt: ファイル サイズがバイト、キロバイト、メガバイトのいずれで表現されるかを決定します。バイト単位の場合、パラメータ値は「バイト」です。
キロバイトとメガバイトには省略形を使用できます。同様に、sizefmt パラメータは、使用する fsize コマンドの前に配置する必要があります。


2. Include コマンドは他のドキュメントにファイルを追加できますテキストまたは画像は、現在解析されているドキュメントに挿入されます。これは SSI 全体のキーです。
Include コマンドを使用すると、1 つのファイルを変更するだけでサイト全体が即座に更新されます。
Include コマンドには 2 つの異なるパラメータがあります:
Virtual: サーバー側のドキュメントへの仮想パスを与えます。
ファイル: 現在のディレクトリへの相対パスを指定します。「../」は使用できず、絶対パスも使用できません。

これには、各ディレクトリにヘッダーが含まれている必要があります。 htmlファイル。
3. Echo コマンド
Echo コマンドは以下の環境変数を表示できます:
DOCUMENT_NAME: 現在のドキュメントの名前を表示します。
DOCUMENT_URI: 現在のドキュメントの仮想パスを表示します。例:

ウェブサイトは開発が進むにつれて長くなります。そして、長い URL アドレスは間違いなく頭痛の種を引き起こす可能性があります。 SSIを使えば全て解決します。 Web サイトのドメイン名と SSI コマンドを組み合わせて完全な URL を表示できるため、次のようになります。
http://YourDomain
QUERY_STRING_UNESCAPED: 転送せずに表示します。セマンティック処理のためにクライアントによって送信されるクエリ文字列。すべての特殊文字の前に
記号 "" が付きます。例:

DATE_LOCAL: サーバーの設定されたタイムゾーンの日付と時刻を表示します。ユーザーは、config コマンドの timefmt パラメーターを組み合わせて、出力情報
をカスタマイズできます。例:

;
表示される結果は次のとおりです:
2000 年 4 月 15 日土曜日
DATE_GMT: 日付がグリニッジ標準時に基づいて返されることを除いて、関数は DATE_LOCAL と同じです。例:

LAST_MODIFIED: 現在のドキュメントの最終更新時刻を表示します。同様に、これは SSI で非常に実用的な機能です。HTML ドキュメントに次のような単純なテキストを追加するだけで、更新時刻をページ上に動的に表示できます。

CGI 環境変数
SSI 環境変数に加えて、echo コマンドは次の CGI 環境変数も表示できます:
SERVER_SOFTWARE: の名前とバージョンを表示します。サーバーソフトウェア。例:

SERVER_NAME: サーバーのホスト名、DNS エイリアス、または IP アドレスを表示します。例:

SERVER_PROTOCOL: クライアント要求で使用されるプロトコル名とバージョン (HTTP/1.0 など) を表示します。例:

SERVER_PORT: サーバーの応答ポートを表示します。例:

REQUEST_METHOD: GET、HEAD、POST などのクライアントのドキュメント要求メソッドを表示します。例:

REMOTE_HOST: リクエスト情報を発行したクライアントホストの名前を表示します。

REMOTE_ADDR: リクエスト情報を発行したクライアントのIPアドレスを表示します。

AUTH_TYPE: ユーザー ID 検証方法を表示します。

REMOTE_USER: 保護されたページにアクセスしたユーザーが使用したアカウント名を表示します。

4. Fsize: config コマンドの sizefmt パラメータを組み合わせて、出力形式をカスタマイズできます。
5. Flastmod: 指定されたファイルの最終変更日を表示し、config コマンドの timefmt パラメータと組み合わせて出力を制御できます。フォーマット。


ここでは、flashmod パラメーターを使用して、ページ上のすべてのリンクされたページの更新日を表示できます。方法は次のとおりです。

File
< !--#flastmod virtual="/directory/file.html" -->
別のファイル #flastmod virtual ="/another_directory/another_file.html" -->
表示される結果は次のとおりです:
ファイル 2000 年 4 月 19 日
別のファイル 2000 年 1 月 8 日
6. Exec Exec コマンドは CGI スクリプトまたはシェル コマンドを実行できます。使用法は次のとおりです:
Cmd: /bin/sh を使用して、指定された文字列を実行します。 SSI が includesNOEXEC オプションを使用する場合、このコマンドはブロックされます。
Cgi: CGI スクリプトの実行に使用できます。たとえば、次の例では、サーバーの cgi-bin ディレクトリにある counter.pl スクリプトを使用して、すべての
ページにカウンターを配置します。