如何为php文件设置doc_root路径?

时间:2011-01-16 02:54:35

标签: php path absolute-path

我正在尝试调用文件或文件夹,如:

require('/functions.php');
$a = '/folder/';

但它不会工作并继续给出错误“无法打开流”,我知道我可以修改php.ini中的“doc_root”但不确定这是否正确以及究竟要修改什么。

有人可以建议吗?

谢谢。

------更新----- 我只是想使用fopen:

在子文件夹中创建一个文件
$ourFileName = "/folder/subfolder/index.php"
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");

但我不想使用$ _SERVER ['DOCUMENT_ROOT'],因为我想使用相同的变量$ ourFileName来构建链接

------更新------为了使它更清晰,这里的代码不起作用:

<?php 
$ourFileName = '/jobs/';
$ourFileHandle = fopen($ourFileName.'index.php', 'w') or die("can't open file");
fwrite($ourFileHandle, 'hello world');  
fclose($ourFileHandle); 
?>

3 个答案:

答案 0 :(得分:4)

如何使用: $ _SERVER [ “DOCUMENT_ROOT”]

答案 1 :(得分:3)

要获得最佳的根路径,您应该在视图文件中定义一个常量,即(index.php),并且应该使其与跨平台兼容。

在PHP和多平台应用程序工作多年后,我发现执行此操作的最佳方法是以下本机PHP函数和常量的组合:

  • 定义
  • str_replace函数
  • 目录名
  • __FILE__

这就是为什么我们使用这些功能:

  • 我们使用define的原因是允许文档根目录保持在全局范围内
  • str_replace的原因是将斜杠更改为跨平台兼容
  • dirname的原因是帮助提供根视图文件的相对路径
  • __FILE__的原因是发现dirname
  • 的视图文件

我们可以将__DIR__用于PHP5,但__FILE__更好,因为它支持以前版本的Windows。

完全组合后,您将拥有一个有效的视图文件相对路径。

define("ROOT_PATH",str_repalce("\\","/",dirname(__FILE__)));

这会产生索引目录的完美相对路径而不带斜杠,你应该像这样包含你的文件:

require_once ROOT_PATH . "/system/classes/some.class.php";

在Windows中,/\都有效,而对于其他操作系统,它只是/,因此通常应始终使用/构建应用程序目录分隔符。

答案 2 :(得分:0)

除非您的functions.php文件位于linux系统根目录中,否则该路径将不起作用,因为第一个/字符意味着“一直到root”。

如果functions.php与您引用的文件位于同一目录中,请尝试以下操作:

$dir = dirname(__FILE__);
$functions_absolute_path = $dir . '/functions.php';
require($functions_absolute_path);