0

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

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

或者

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

或者

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

或者在现实世界中真的没有实际差异吗?

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

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

根本不推荐方法 1,因为包含使用 HTTP 协议是一个潜在的安全漏洞,并且不允许在大多数严重的主机上使用 - 它也较慢,因为它会通过网络加载。

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

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

于 2012-09-21T21:55:22.313 回答