在PHP中,什么是Web服务器上的最佳文件路径引用方法



当在PHP脚本中包含其他文件时,Web服务器处理速度更快:

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

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

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

还是现实世界中真的没有实际区别?

这不是一个学术问题。如果所有三种方法在实时都同样令人满意,请告诉我。这就是我需要知道的。

绝对的,即用"/"分层总是更好。这样,如果您移动应用程序,则不必手动更新路径名。我使用 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))));
?>

只需在模板页面中包含具有这些定义的文件即可。

根本不

建议使用方法 1,因为包括使用 HTTP 协议是一个潜在的安全漏洞,并且在大多数严肃的主机服务器上是不允许的 - 它也更慢,因为它会通过网络加载。

我猜方法 2 和 3 有点等效(直觉,没有做任何基准测试)。

方法 3 允许您移动 PHP 应用程序,而无需更正绝对路径。

最新更新