我正在尝试从服务器上的.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
出于某种原因,即使文件在包含时被识别并且目录正确(页脚.php和事实.txt文件都在同一个目录中),随机行选择也会引发此错误。我已经使用 WAMP 在本地测试了此代码,没有任何问题。我还检查了文件权限以确保它是可读的。
答案是 PHP 不会自动假设"facts.txt"与正在运行的 PHP 文件位于同一目录中。你必须告诉它完整的路径。
尝试:
$f_contents = file(dirname(__FILE__) . '/facts.txt');