0

PHPスクリプトに他のファイルを含める場合、Webサーバーが処理するのに速いのは次のとおりです。

include 'http://www.mydomain.com/bin/scripts/thescript.php';

また

include '/home/user/public_html/bin/scripts/thescript.php';

また

include '../../scripts/thescript.php';

それとも、現実の世界では実質的な違いは本当にないのでしょうか?

これは学術的な質問ではありません。3 つの方法すべてがリアルタイムで同等に満足できるものである場合は、教えてください。それは私が知る必要があるすべてです。

4

2 に答える 2

1

絶対、つまり「/」で区切る方が常に優れています。そうすれば、アプリを移動しても、パス名を手動で更新する必要はありません。2 つの関数の組み合わせを使用して、絶対パスを定数として定義します。

function tsl($path) {
    if (substr($path, strlen($path) - 1) != '/'){
        $path .= '/';
    }
}
function get_root_path() {
  $pos = strrpos(dirname(__FILE__),DIRECTORY_SEPARATOR.'inc');
  $adm = substr(dirname(__FILE__), 0, $pos);
  $pos2 = strrpos($adm,DIRECTORY_SEPARATOR);
  return tsl(substr(__FILE__, 0, $pos2));
}
define('ROOTPATH', get_root_path());

私の例では inc/ を使用していますが、これは変更できます。これにより、常にパスを見つけようとするのではなく、定数 ROOTPATH を使用することができます。

もう一つの方法はこんな感じです...

<?php
define('ROOT_DIR', dirname(__FILE__));
define('ROOT_URL', substr($_SERVER['PHP_SELF'], 0, - (strlen($_SERVER['SCRIPT_FILENAME']) - strlen(ROOT_DIR))));
?>

これらの定義を含むファイルをテンプレート ページに含めるだけです。

于 2012-09-21T21:55:42.130 に答える
0

HTTP プロトコルを使用するインクルードは潜在的なセキュリティ ホールであり、ほとんどの本格的なホスティング会社では許可されていないため、方法 1 はまったくお勧めできません。ネットワーク経由でロードされるため、速度も遅くなります。

方法 2 と 3 はある程度同等だと思います (直感で、ベンチマークは行っていません)。

方法 3 では、絶対パスを修正せずに PHP アプリケーションを移動できます。

于 2012-09-21T21:55:22.313 に答える