Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在wamp上使用PHP中的/path/to/file——转到驱动器的根目录。如何使其转到文档根目录?_Php_Apache_Wamp - Fatal编程技术网

在wamp上使用PHP中的/path/to/file——转到驱动器的根目录。如何使其转到文档根目录?

在wamp上使用PHP中的/path/to/file——转到驱动器的根目录。如何使其转到文档根目录?,php,apache,wamp,Php,Apache,Wamp,我使用的是WAMP(Apache2),我有一个PHP命令,如下所示: $file='/path/to/file.txt'; 通过命令realpath进行一些测试和诊断后,我发现该文件是从F:/path/to/file.txt而不是F:/wamp/www/path/to/file.txt抓取的。在通过StackOverflow进行搜索后,人们说要检查httpd.conf中的DocumentRoot。我这样做了,文档根目录是/wamp/www(应该是这样的) 有什么想法吗?如果不需要的话,我真的不

我使用的是WAMP(Apache2),我有一个PHP命令,如下所示:

$file='/path/to/file.txt';
通过命令realpath进行一些测试和诊断后,我发现该文件是从
F:/path/to/file.txt
而不是
F:/wamp/www/path/to/file.txt
抓取的。在通过StackOverflow进行搜索后,人们说要检查httpd.conf中的DocumentRoot。我这样做了,文档根目录是
/wamp/www
(应该是这样的)

有什么想法吗?如果不需要的话,我真的不想重做这个代码


谢谢

您可以做的是为index.php位置的根路径设置一个常量:

define( 'ROOT_PATH', dirname(__FILE__) );
然后,您可以通过以下路径访问该文件:

$file = ROOT_PATH .'/path/to/file.txt';
使用PHP系统变量


这似乎奏效了!只是出于好奇,它被认为是一种最佳实践,或者只是一种“如何轻松修复它”?我在很多项目中都看到过这种情况。我认为最好知道从哪一点访问文件。您可以使用多种方法。这个我觉得最简单。太好了,我就选这个。谢谢!如果有人从一个类似的问题中读到这个问题,这个方法同样有效(试过了)。我决定使用Thomas的答案,因为定义文档根似乎不那么“黑客”。谢谢David,我一定会记住这一点。Thomas回答的问题是,您在一个文件中定义了一个全局常量,该文件的实际位置可能不在根目录中。这还意味着,如果应用程序被重构并且文件被移动,那么路径将是错误的$_另一方面,服务器['DOCUMENT_ROOT']已经定义,并且只有在服务器的配置文件发生更改时才会更改,这将是您想要的行为。编码一次,使用多次。当您从开发转移到测试和生产时,它也适用于每台服务器。由于这些原因,这实际上是“最佳实践”。
$file = $_SERVER['DOCUMENT_ROOT'] . '/path/to/file.txt';