在PHP中创建绝对路径

时间:2015-05-17 11:17:00

标签: php wamp wampserver

我已经创建了一个PHP文件 url.php 并编写了这段代码 -

<?php
define("BASE_URL", "/geo15/" );
define("ROOT_PATH", $_SERVER['DOCUMENT_ROOT'] . "geo15/" );
?>

我在几个页面中包含了 url.php 文件,但是当我浏览这些文件时,收到以下错误消息:

  

警告:require_once(inc / url.php):无法打开流:没有这样的   第1行的C:\ wamp \ www \ geo15 \ inc \ header.php中的文件或目录

但是当我在浏览器的网址栏中粘贴路径 C:\ wamp \ www \ geo15 \ inc \ header.php 时,它会打开。

N.B。我正在使用WAMP服务器进行开发。

2 个答案:

答案 0 :(得分:0)

我使用此代码(在Unix中):

 include dirname(__FILE__).'/paht/relative/to/the/current/file/file_name.php';

它适用于所有情况。

在Windows中

,您可以使用:

 include dirname(__FILE__).'\paht\relative\to\the\current\file\file_name.php';

答案 1 :(得分:0)

DOCUMENT_ROOT会输出类似“c:/ wamp / www”的内容,因此您将丢失一个/那里。您当前的代码实际上会输出类似“c:/ wamp / wwwgeo15 /".

的内容

此外,请确保'geo15 /'位于实际的www目录中,而不是别名。如果它是别名,那么你肯定会得到一个断开的链接。此外,您可能会发现以下内容:

目录名($ _ SERVER [ 'SCRIPT_FILENAME'])

  • 会输出类似'x:/ path / to / the current / execution / php / file'的内容。
  • $ _ SERVER ['SCRIPT_FILENAME']会输出类似'x:/path/to/the/current/executing/php/file/theCurrentRunningFile.php'的内容。
  • 这对于查找需要包含,includeonce或require的页面非常有用。

目录名($ _ SERVER [ 'PHP_SELF'])

  • 会输出类似'/ myAliasDirectory /和/ path /到/ current / php / file'的内容。
  • $ _ SERVER ['PHP_SELF']会输出类似'/myAliasDirectory/and/path/to/current/php/file/theCurrentRunningFile.php'的内容。
  • 这对于创建动态超链接非常有用。

或者,如果您有许多子目录,您可能需要考虑使用“../”指出当前目录上方的目录。因此,如果您的脚本是“/my/path/to/current/runningscript.php”并且您要包含的文件位于“/include/this/file.php”中,那么包含它的正确方法是“include” ( '../../../../../包括/这个/ file.php');”

并且以“/”开头也会将您带到根目录或实际上,它可以指向当前别名的根目录或硬盘的根目录,而以无斜线开头将从正在运行的脚本的当前目录开始。如果您正在使用别名“/ myAliasDirectory /”在“include('/ file.php')中启动include with / like”,如果“file.php”位于“x:/file.php”中,则可以正常工作或“/myAliasDirectory/file.php”。所以是的,如果你这样做会让人感到困惑,所以我只会推荐它一半。