【问题标题】:Including a PHP file, treats relative URLs from that directory包括一个 PHP 文件,处理来自该目录的相对 URL
【发布时间】:2009-02-23 20:42:29
【问题描述】:
我的服务器上有一个 PHP 文件 root.. index.php .. include's .. DIR/main.php
现在 ..DIR/main.php ..include 的许多 附近 PHP 文件使用 relative URL 使用 ..include("./common1.php");
我可以通过任何方式更改相对 URL 基本路径,因此当包含“DIR/main.php”时,它可以相对访问其附近的 PHP 文件,例如“DIR/common1.php”,而不是试图在站点根目录中找到“common1.php”。
【问题讨论】:
标签:
php
url
relative-path
server-side-scripting
【解决方案1】:
看看set_include_path
编辑:将路径附加到include_path 时,请务必使用 PATH_SEPARATOR 常量,因为它旨在使您的包含路径与操作系统无关。
<?php
set_include_path(implode(PATH_SEPARATOR, array(
get_include_path(),
'/DIR1',
'/DIR2/DIR3',
dirname(__FILE__),
)));
?>
【解决方案2】:
首先,将 "relative-URL base path" 设置为您的目录
set_include_path( get_include_path() . '/DIR' );
其次,包含你的文件!
require( 'main.php' );
虽然我没有测试过,但这应该可以工作。
【解决方案3】:
除了 lonut 的回答,你可以使用__FILE__ 常量和dirname() 的组合来获取文件的目录。
$include_path = dirname(__FILE__);
set_include_path($include_path);