为什么PHP“需要”找不到文件? - php

我具有以下文件结构:

temp
    main
        index.php
    a.php
    b.php

这是文件;

index.php

echo "index.php ---> " . __DIR__ . "<br />";

require('../a.php');

echo "OK<br />"

a.php

echo "a.php ---> " . __DIR__ . "<br />";

require('./b.php');

echo "a is here<br />"

b.php

echo "b is here<br />"

调用index.php时,出现以下错误:

index.php ---> D:\Programs\WampServer 2\www\temp\main
a.php ---> D:\Programs\WampServer 2\www\temp

Warning: require(./b.php) [function.require]: failed to open stream: No such file or directory in D:\Programs\WampServer 2\www\temp\a.php on line 5

Fatal error: require() [function.require]: Failed opening required './b.php' (include_path='.;C:\php5\pear') in D:\Programs\WampServer 2\www\temp\a.php on line 5

我注意到如果我改变

require('./b.php');

require('b.php');

这是为什么 ?
它按预期工作。

参考方案

当使用include或require时,包含的文件将充当包含该文件的脚本的一部分。在这种情况下,文件a.php可能与b.php位于同一目录中,但是当代码运行时,它在index.php上下文中运行。如果使用的是__FILE__而不是__DIR__,则当a.php作为index.php上的包含文件运行时,它会返回与index.php相同的值。

由于相对路径根据使用文件的位置而变化,因此始终最好使用相对于服务器根目录的绝对路径。如果机器配置正常,则以$_SERVER["DOCUMENT_ROOT"]开头,然后添加应用程序路径和包含路径。在某些共享的托管服务器上,您可能必须对根进行硬编码(或将其添加到.htaccess文件中)。

PHP:获取调用引用的数组名称 - php

假定以下函数并调用:function doSomething( &$someArray ) { // Do something to $someArray } $names=array("John", "Paul", "George", "Ringo"); doSomet…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP-如何获取类的成员函数列表? - php

如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友

PHP-我们应在会话中包含哪些数据? - php

这是一个初学者的问题...在网站中,会话中应该包含或不应该包含什么类型的数据?我了解我不应该包含任何需要保持安全的信息。我对编程最佳实践更感兴趣。例如,有可能在会话中包括一些数据,否则这些数据将作为依赖项注入从一个页面发送到另一个页面。这不等于创建全局变量吗?一般来说,哪种数据在会话表中已经存在或没有?谢谢,JDelage 参考方案 您应该将会话视为一次写入…

php ziparchive类源代码 - php

Improve this question 我如何获取ziparchive类本身的源代码。 参考方案 假设您在谈论PHP ZipArchive class:下载PHP source code并查找适当的文件。如果您希望源代码是PHP代码,您可能会感到失望,因为源代码是用C语言编写的。或者,也可以在PHP Github Development Reposito…