11

サーバーへのすべての実行にPHPスクリプトを自動的に含めたいのですが、PHP iniを介して、設定を介して、または単純でphpスクリプトを含むphpで拡張機能を作成できるようにすることを望んでいました。

4

3 に答える 3

20

ファイルにauto_prepend_fileディレクティブを設定できます。php.ini

http://php.net/manual/en/ini.core.php#ini.auto-prepend-file

于 2012-12-26T00:20:44.743 に答える
4

Apache を実行していて .htaccess にアクセスできる場合は、次の操作を実行できます。それ以外の場合は、@Lock の回答を参照してください。

prepend.php:
<?php
echo "<p>this is the prepended file</p>\n";

main.php:
<?php
echo "<p>this is the main file</p>\n";

append.php:
<?php
echo "<p>this is the appended file</p>\n";

そして、以下の手順を使用して prepend.php を先頭に追加し、append.php を追加します。main.php が呼び出されると、スクリプトから次のように出力されます。

<p>this is the prepended file</p>
<p>this is the main file</p>
<p>this is the appended file</p>

そして、以下の手順を使用して prepend.php を先頭に追加し、append.php を追加します。main.php が呼び出されると、スクリプトから次のように出力されます。

<p>this is the prepended file</p>
<p>this is the main file</p>
<p>this is the appended file</p>

スクリプトを先頭に追加する

メイン スクリプトの前に解析されるようにファイルを先頭に追加するには、次の設定を .htaccess ファイル、php.ini (もちろんすべての Web サイトに影響します)、または構成に追加します。

php_value auto_prepend_file prepend.php

パスを含める必要はありませんが、含まれていない場合は、インクルード パスを使用して検索します。これにより、スクリプトが含まれるインクルード パスまたはディレクトリにこのファイルのコピーがない場合、「警告: 不明: ストリームを開くことができませんでした: 行 0 の不明にそのようなファイルまたはディレクトリはありません」のようなエラーが発生する可能性があります。先頭に追加されたファイルへのフルパスを取得します。スクリプトの追加

これは、スクリプトを先頭に追加することとほぼ同じであり、同じ注意事項が適用されます。ファイルを追加する方法は次のとおりです。

php_value auto_append_file append.php

何も先頭または末尾に追加されないように設定をオーバーライドする

既存の auto_append_file または auto_prepend_file 設定をオーバーライドする必要がある場合は、次のように値を「none」に設定することでこれを行うことができます。

php_value auto_prepend_file none
php_value auto_append_file none

これは、Web サイトのルート レベルで .htaccess に追加/前置ファイルを設定させたいが、特定のサブディレクトリでは追加または前置を行わないようにしたい場合に便利です。上記のように、そのサブディレクトリに新しい .htaccess ファイルを作成して、それらを none に設定します。

ソース: http://www.electrictoolbox.com/php-automatically-append-prepend/

于 2012-12-26T00:21:32.993 に答える
3

別の解決策として、Apache を使用していてこれが利用できる場合は、.htaccess. 次の行を追加します。

php_value include_path "/var/www/mysite.com/config"

次に、PHPファイルに含めることができます

include_once('someconfig.php');

に見えます/var/www/mysite.com/config/。確かに、私は auto-prepend ソリューションを知らずにこれを実行しました。これは、はるかにクリーンで効率的に見えます。

于 2012-12-26T00:22:41.507 に答える