1

config.phpをルートレベルに置くと、このファイルはすべてのページに含まれます。

次に、config.phpで

<?php
define( 'ROOT_DIR', dirname(__FILE__) );
?>

したがって、異なるsub / a.php、sub / sub / b.phpディレクトリの他のすべてのページで、特定のファイルを特定の場所に含めたい場合は、次のことを行う必要があります。

include( ROOT_DIR.'/include/functions.php' );

Windowsサーバーでは、ROOT_DIRは値をにもたらしますC:/inetpub/vhosts/domain.com

これは良い/安全な方法ですか?

このように、b.phpを他の上位フォルダーに移動するときに、インクルードファイルのパスを変更する必要がないようです。これはメンテナンスに役立ちます。

短所はありますか?SEOの賢明な、または他の理由のように...皆さんがどう思うか。

4

3 に答える 3

2

このようなことを行うことは、サイトの移植性を大幅に向上させるため、強くお勧めします。これがSEOにどのように影響するかわかりません。

ただし、この方法でインクルードパスを変更できないというのは事実ではありません。ROOT_DIRは明らかにインクルードされるまで定義されないため、config.phpのインクルードパスを変更する必要があります。

これを避けたい場合は、ROOT_DIRの代わりに$_SERVER['DOCUMENT_ROOT']を使用する必要があります。これは同じものを返し、すべてのスクリプトで使用できるため、他のすべてのインクルードと同様にconfig.phpをインクルードするために使用できます。

または、 php.iniのインクルードパスを編集することもできます。ただし、これは、a)すべてのインクルードが同じフォルダーにあり、b)サーバー上のphp.iniにアクセスできることを前提としています。

于 2010-04-16T02:36:57.617 に答える
2

(絶対パスを使用して)使用している方法の利点の1つは、PHPがすべての要求のパスを解決する必要がないことです。そうすれば、パフォーマンスがこれまでになくわずかに向上することがあります。

また、PHP 5.3を使用している場合は、__DIR__の代わりに使用できますdirname(__FILE__)

5.3を使用していない場合は、可能であれば試してみてください。多くの新しい便利な言語機能は言うまでもなく、5.3ではWindowsプラットフォームに多くの改善が加えられました。

于 2010-04-16T03:10:49.883 に答える
0

vhostsをそのまま使用することをお勧めします...

C:/ inetpub / vhost / account /html=ポイント=>domain.comC:/ inetpub / vhost / account / includeded_files

define('PATH_INCLUDE','C:/inetpub/vhost/account/included_files');
于 2010-04-16T02:35:48.143 に答える