当在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 应用程序,而无需更正绝对路径。