2012-11-18 46 views
2

我使用Windows操作系统,PHP是新的。 即我试图在PHP文件实现PHP函数与fgets():在PHP中执行fgets()函数

$file = fopen("$DOCUMENT_ROOT/Chapter02/test.txt","r"); 

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

fclose($file); 

我创建的test.txt与以下内容的文件:

您好,这是一个测试文件。
这里有三行。
这是最后一行。

如实施例从http://www.w3schools.com/

这两个文件,.PHP和.txt位于一个目录:

C:/瓦帕/网络/ Chapter02/

但执行之后这个PHP文件,没有显示任何内容,并且应显示:

你好,这是一个测试文件。
这里有三行。
这是最后一行。

我想,我犯了一个错误的路径“$ DOCUMENT_ROOT/Chapter02/test.txt的”,但我真的不知道哪里的错误是...

我会强烈感谢您的帮助:)

亲切的问候,

伊万娜

+0

你不应该使用或链接到[w3schools](http://www.w3fools.com) –

回答

1

可能存在的缺陷:

  • 您的文件不存在(你$DOCUMENT_ROOT变量可能没有设置)
  • 您的文档是空

与fgets()完全相同在所有主要的PHP平台相同的方式工作,所以我敢肯定,你的问题是文件,而不是实际的识别代码(这看起来很不错)

尝试的var_dump($ DOCUMENT_ROOT)和手动检查文件是否存在的存在(使用file_exists())。这可能会发现错误。

顺便说一句,W3Schools是一个可怕的网站学习,尽管我讨厌这样说。他们的许多信息要么过时,不完整,要么完全不明确。

+0

这个特殊的错误发生是因为w3schools的教程假定'register_globals'可用并且被启用(并且因此,变量将从'$ _SERVER'填充)。 – duskwuff

+0

正是我所怀疑的。将$ DOCUMENT_ROOT转换为$ _SERVER ['DOCUMENT_ROOT']。 –

+0

我已经根据您的输入进行了检查,并尝试var_dump($ DOCUMENT_ROOT)并正在工作,但通过使用file_exists()与数据文件$ DOCUMENT_ROOT/Chapter02/test.txt(我个人将此文件制作成:),并且文档不是空))我收到消息,该文件不存在,我有点惊讶...,我该怎么做呢?和我应该遵循什么网站而不是W3Schools,请。给我一个建议 – Ivana

0

更改$DOCUMENT_ROOT$_SERVER['DOCUMENT_ROOT']。除非您自己设置$DOCUMENT_ROOT,否则应该使用后者,这是从服务器配置中设置的。