在 PHP 中创建绝对路径

Creating absolute path in PHP

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

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

我已将 url.php 文件包含在多个页面中,但是当我浏览这些文件时,我收到此错误消息:

Warning: require_once(inc/url.php): failed to open stream: No such file or directory in C:\wamp\www\geo15\inc\header.php on line 1

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

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

我使用这段代码(在 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';

DOCUMENT_ROOT 会输出类似 "c:/wamp/www" 的内容,所以你会遗漏一个 / 那里。您当前的代码实际上会输出类似 "c:/wamp/wwwgeo15/".

的内容

此外,确保 'geo15/' 在实际的 www 目录中而不是别名中。如果它是一个别名,那么你肯定会得到一个损坏的 link。此外,您可能会发现以下内容很有用:

目录名($_SERVER['SCRIPT_FILENAME'])

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

目录名($_SERVER['PHP_SELF'])

  • 会输出类似于“/myAliasDirectory/and/path/to/current/php/file”的内容。
  • $_SERVER['PHP_SELF'] 会输出类似于 '/myAliasDirectory/and/path/to/current/php/file/theCurrentRunningFile.php'.
  • 这对于创建动态 hyperlinks 很有用。

或者,如果您有很多子目录,您可能需要考虑使用“../”来指出当前目录之上的目录。所以,如果你的脚本是“/my/path/to/current/runningscript.php”而你要包含的文件在“/include/this/file.php”,那么正确的包含它的方法是"include('../../../../../include/this/file.php');".

并且..以“/”开头也会将您带到根目录,或者实际上,它可以指向当前别名的根目录或硬盘驱动器的根目录,而以“/”开头斜杠将从 运行 脚本的当前目录开始。如果您在别名“/myAliasDirectory/”中工作,如果 "file.php" 位于 "x:/file.php" 或“/myAliasDirectory/file] 中,那么在 "include('/file.php')" 中以 / 开始您的包含将起作用。 =58=]”。所以是的,如果你这样做会让人很困惑,所以我只推荐一半。