文件存在,但PHP抛出“无法打开流:没有这样的文件或目录”

时间:2015-01-07 22:30:02

标签: php wordpress

我正在尝试从服务器上的.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在本地测试了这段代码,我没有遇到任何问题。我还检查了文件权限以确保它是可读的。

1 个答案:

答案 0 :(得分:0)

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

尝试:

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