读取文本文件的无限循环

时间:2013-12-21 18:19:26

标签: php wordpress php-parse-error

我在WordPress中制作自定义主题。现在在主题文件夹里面是另一个名为“php”的文件夹,里面有一个文本文件,让我们说“names.txt”。现在我想要做的是从“php”文件夹中读取文本文件。我在index.php中有这个代码:

<?php

 $file = fopen("/php/names.txt","r");

 while(! feof($file))
 {
 echo fgets($file). "<br />";
 }

 fclose($file);

 ?>

但是我的网页陷入了无限循环,但错误的是文件不存在,尽管它确实存在。急需帮助。 更新:我尝试在一个单独的php.file中运行上面的代码,我将它放在与“names.txt”文件相同的目录中,然后读取数据。

更新[求助]:

<?php

$location = get_template_directory() . "/php/admin.txt";
if ( file_exists( $location )) {
$file = fopen($location, "r");

while(!feof( $file )) {
    echo fgets($file). "<br />";
} 

fclose($file);
}
else
{echo "no file.";}
?>
由于@MackieeE

像魔术一样工作

1 个答案:

答案 0 :(得分:1)

首先使用file_exists()

为文件做一个更好的检查系统
if ( !file_exists( "/php/names.txt", "r" )) 
   echo "File not found";

然后让我们来看看你是如何从调用文件的 - 它可能无法找到它!目前,您的WordPress脚本可能正在从themes文件夹中调用它,如下所示:

   --> root
      --> wp-content
        --> themes
          --> yourtheme
            --> php
              --> names.txt

尽管如上所述,当前脚本正在寻找:

  --> root
    --> php
      --> names.txt

由于/php/

中的开始斜杠

确保将names.txt放在正确的位置,您可以使用Wordpress'es预定义变量get_template_directory()或PHP $_SERVER["DOCUMENT_ROOT"]来确保指向正确的文件夹需要:

 $location = get_template_directory() . "php/names.txt";
 if ( file_exists( $location )) {
    $file = fopen($location, "r");

    while(!feof( $file )) {
        echo fgets($file). "<br />";
    } 

    fclose($file);
 }