1

このようなものが存在するとしたら正直驚きですが、私の Google-fu に関連するものは見つかりませんでした。

require_once()サイトのすべてのページで使用する PHP ファイルを含めています。ファイルは軽量のカスタム フレームワークです。

require_once()行全体を削除し、別のあいまいなメカニズムを使用して、指定されたフォルダー内のすべてのファイルの先頭にライブラリを含めることができるかどうか疑問に思っていました.

これの背後にある理由は、その特定のフォルダー内のファイルが、コーディングの知識が限られている人によって変更される可能性があるためです。私は、それらが重要ではないと考えて PHP の行を台無しにしてほしくありません。

編集:ライブラリは最終的に配布され、典型的な PHP インストールで動作することを目指しています。

ありがとう!

4

2 に答える 2

3

auto_prepend_file私が感じるもう 1 つの手法は、このフォルダーへのすべての要求を最初に 1 つのファイルにリダイレクトし、次にライブラリをロードしてから、これらの他のユーザーに変更させるファイルをロードするよりも曖昧ではありません。

書き換えコードを使用してこの種のものを解析した方法は次のとおりです... htaccessファイルがフォルダーと同じディレクトリにある場合、書き換えルールは次のようになります。 RewriteRule ^(.*)$ index.php/$1 [L]

index.php ファイルでは、通常、サイトの何らかの構成をロードしてから委任します。ここでこの関数を使用して現在の URL を取得します...やり過ぎかどうかは完全にはわかりませんが、いくつかのプラットフォームで一貫して機能しています。

function get_current_url() {
 $pageUrl = 'http';
 if (@$_SERVER["HTTPS"] == "on") {$pageUrl .= "s";}
 $pageUrl .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageUrl .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageUrl .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }

 return $pageUrl;
}

parse_url()次に、基本的に、php の関数を使用して適切に委譲する get_current_url() の結果を解析できます。

于 2012-07-15T17:17:57.723 に答える
2

はい、これはphp.iniディレクティブを使用して非常に可能auto_prepend_fileです。

したがって、たとえば、適切な .htaccess ファイルでは次のようになります。

php_flag auto_prepend_file header.php
于 2012-07-15T17:14:55.090 に答える