我创建了一个PHP文件url.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服务器进行开发。
你的意思是define(" BASE_URL"," ... / geo15 /");
否,常量BASE_URL可以正常运行,但是ROOT_PATH不能正常工作。 我想为我的header.php文件创建一个绝对路径。
这可能会解决您的问题-> [stackoverflow.com/q/11893832/3949439][1] [1]:stackoverflow.com/q/11893832/3949439
@Utkarsh Vishnoi我浏览了您提供的链接,但无法获取。 这是我目前在url.php文件中的代码,那么应该是什么呢?
DOCUMENT_ROOT将输出类似" c:/ wamp / www"的内容,因此您将缺少一个。您当前的代码实际上将输出类似" c:/ wamp / wwwgeo15 /"的内容。
另外,请确保" geo15 /"位于实际的www目录中,而不是别名中。如果它是别名,那么您肯定会得到一个断开的链接。此外,您可能会发现以下有用的内容:
dirname($ _ SERVER ['SCRIPT_FILENAME'])
将输出类似" x:/ path / to / the / current / executing / php / file"的内容。
$ _SERVER ['SCRIPT_FILENAME']将输出类似" x:/path/to/the/current/executing/php/file/theCurrentRunningFile.php"的内容。
这对于查找需要包含,包含或需要的页面很有用。
dirname($ _ SERVER ['PHP_SELF'])
将输出类似" / myAliasDirectory / and / path / to / 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 ('../../../../../include/this/file.php');"。
And ..以" /"开头也将带您到根目录,或者实际上,它可以指向当前别名的根目录或硬盘驱动器的根目录,而以斜杠开头的内容将以。正在运行的脚本的当前目录。如果您使用别名" / myAliasDirectory /",则在" x:/file.php"中的任何一个文件" file.php"中,都可以在" include('/ file.php')"中以/开头包含或" /myAliasDirectory/file.php"。是的,如果您这样做的话,将会非常混乱,因此我只会推荐一半。
我使用以下代码(在Unix中):
include dirname(__FILE__).'/paht/relative/to/the/current/file/file_name.php';
它适用于所有情况。
在Windows中,您可以使用:
include dirname(__FILE__).'\paht
elative\to\the\current\file\file_name.php';
我收到此错误:Warning: include(C:\wamp\www\geo15\pages\bazi-analysis....incheader.php): failed to open stream: No such file or directory in C:\wamp\www\geo15\pages\bazi-analysis\3-years-bazi-analysis.php on line 1
@Crtvca如果服务器操作系统是Windows,则应使用反斜杠(``)来分隔目录,如果是Linux(Unix),则应使用正斜杠(`/`)。 显然,您正在Windows中运行,因此应将正斜杠替换为反斜杠。