PHP:U可读不适用于相对路径,适用于绝对路径

PHP:U可读不适用于相对路径,适用于绝对路径,php,Php,我正在将站点从一台服务器移动到另一台服务器。在旧服务器上,我的代码调用是_readablefilename,它可以工作。在新服务器上,它不工作。这些文件完全相同,文件名相对于调用页位于同一位置 当我放入一个绝对路径时,is_readable会像预期的那样返回true。关于问题可能是什么有什么建议吗 安全模式已关闭,并且在my php.ini中未设置open_basedir。我还修改了文件权限,即使我使用chmod 777,它也不起作用,但这并不重要,因为使用绝对路径时它可以正确读取。服务器可能有

我正在将站点从一台服务器移动到另一台服务器。在旧服务器上,我的代码调用是_readablefilename,它可以工作。在新服务器上,它不工作。这些文件完全相同,文件名相对于调用页位于同一位置

当我放入一个绝对路径时,is_readable会像预期的那样返回true。关于问题可能是什么有什么建议吗


安全模式已关闭,并且在my php.ini中未设置open_basedir。我还修改了文件权限,即使我使用chmod 777,它也不起作用,但这并不重要,因为使用绝对路径时它可以正确读取。

服务器可能有不同的配置,导致当前工作目录CWD不是读取脚本的目录。相对路径始终相对于CWD,而不是当前正在执行的脚本

您可以通过调用或使用将相对路径解析为绝对路径来检查CWD。如果该值不正确,则必须正确配置服务器,或通过执行以下操作手动设置CWD:

chdir(dirname(__FILE__));
尝试在您的相对路径上使用,以检查它是否指向正确的文件


您还可以使用来检查您是否在正确的目录中。

通常,如果您将相对路径传递给可读取的或文件存在,则它将返回false,除非该路径恰好与当前PHP direct相对-

谢谢您的回答。在新服务器上,当前工作目录似乎没有设置为与执行脚本的目录相同。我不确定如何配置,因此产生了另一个问题: