2012-11-18 115 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,否則應該使用後者,這是從服務器配置中設置的。