php include vs library;正确的道路

时间:2012-06-01 12:24:31

标签: php path include

我一直在尝试研究什么是更好的用途,以便包含网站的重复部分 - php include函数或库(在Dreamweaver中提供)。

或许还有其他 - 更好的方法可以达到相同的效果?

目前我使用php include和绝对路径。我从服务器下载了网站,但似乎服务器上运行的路径在我的localhost上不起作用。 为了使它们在两个服务器上都能工作而不必重新编写代码,编写路径的正确和最佳方法是什么?

由于

4 个答案:

答案 0 :(得分:1)

您可以在脚本开头调用set_include_path()命令并指定库的相对路径

http://www.php.net/set_include_path

答案 1 :(得分:0)

由于Dream weaver使用库,这可能是错误的;)

如果您希望确定只在您使用require_once后才包含该代码。

尝试相对路径而不是绝对路径

答案 2 :(得分:0)

解决此问题的一种简单方法是从根目录中定义一个常量,通常在index.php文件中。

/**Path Environment**/
$root=pathinfo($_SERVER['SCRIPT_FILENAME']);
define ('BASE_FOLDER', basename($root['dirname']));   
define ('SITE_ROOT',    realpath(dirname(__FILE__)));
define ('SITE_URL',    'http://'.$_SERVER['HTTP_HOST'].'/'.BASE_FOLDER); 

然后,您可以在整个脚本中使用SITE_URLSITE_ROOT,了解其网络根目录的正确路径。

所以你的旧包括:

include('/srv/www/somesite.com/public_html/somefile.php');

并且您的新包含将显示为include(SITE_ROOT.'/somefile.php');,然后在Windows上开发时,路径将相应更改。

答案 3 :(得分:0)

include_path = ".:/your/absolute/path"

在你的php.ini中,包括Server环境和localhost。 然后,您可以在代码的任何位置访问包含路径文件。