文件存在但 PHP 抛出 "failed to open stream: no such file or directory"

File exists but PHP throwing "failed to open stream: no such file or directory"

我试图从服务器上的 .txt 文件中提取随机字符串,以便将其显示在我网站的页脚中。这是我正在使用的代码(前两行纯粹用于调试目的):

<div id="footer">
    <div class="instructions">
        <?php
            $file = include_once 'facts.txt';
            echo dirname(__FILE__);
            $f_contents = file('facts.txt');
            $line = $f_contents[array_rand ($f_contents)];
            echo $line;
        ?>
    </div>
</div>

这是我的页脚中显示的内容:

TEST LINE - FOR TESTING PURPOSES.

/HOME/LEWIHTYV/PUBLIC_HTML/WP-CONTENT/THEMES/LEWNACY

WARNING: FILE(FACTS.TXT) [FUNCTION.FILE]: FAILED TO OPEN STREAM: NO SUCH FILE OR DIRECTORY IN /HOME/LEWIHTYV/PUBLIC_HTML/WP-CONTENT/THEMES/LEWNACY/FOOTER.PHP ON LINE 6

WARNING: ARRAY_RAND() EXPECTS PARAMETER 1 TO BE ARRAY, BOOLEAN GIVEN IN /HOME/LEWIHTYV/PUBLIC_HTML/WP-CONTENT/THEMES/LEWNACY/FOOTER.PHP ON LINE 7

由于某些原因,即使文件在被包含时被识别并且目录是正确的(footer.php 和 facts.txt 文件都在同一目录中),随机行选择抛出这个错误。我已经使用 WAMP 在本地测试了这段代码,我没有遇到任何问题。我还检查了文件权限以确保它是可读的。

答案是 PHP 不会自动假定 "facts.txt" 与 PHP 文件位于同一目录中,即 运行。你必须告诉它完整的路径。

尝试:

$f_contents = file(dirname(__FILE__) . '/facts.txt');