2010-03-09 67 views
8

我已經試過這樣:文件沒有打開使用PHP的fopen

<?php 
$fileip = fopen("test.txt","r"); 

?> 

這應該已經打開在只讀情緒的文件,但它不 test.txt文件是在同一文件夾index.php文件(主項目文件夾)的

文件不打開

,當我把回聲一樣:

echo $fileip; 

它返回

資源ID#3

回答

15

文件確實打開得很好,你不能像這樣回顯它,因爲它是一個文件指針,而不是文件本身的內容。您需要使用fread()來閱讀實際內容,或者更好的是,使用file_get_contents()直接獲取內容。

做它自己的方式:

$handle = fopen("test.txt", "r"); 
$fileip = fread($handle, filesize($filename)); 
fclose($handle); 

echo $fileip; 

或者,使用file_get_contents()

$fileip = file_get_contents("test.txt"); 

echo $fileip; 
+0

如果要直接打印內容,則不需要先將其保存到變量中,只需使用readfile(「test.txt」); – Tobias 2010-03-09 11:42:28

+0

@Tobias,或者你也可以只是'echo file_get_contents(...',但我添加了變量,因爲OP在他的問題中有這個變量。 – 2010-03-09 12:34:37

2

從php.net:

返回上 成功文件指針資源,或FALSE的錯誤。

由於resource被退回,您的文件已成功打開,則需要進一步的操作,例如fwrite,等你的文件。所以沒有錯誤,該文件是操縱

2

如果您因fopen調用而獲得資源ID,那麼它會成功,因爲如果失敗,它將返回FALSE。那麼究竟是什麼讓你懷疑該文件實際上是打開的?

檢查http://www.php.net/fopen瞭解更多信息。

2

你只打開了一個文件句柄,而不是文件本身。

如果您使用的是PHP5--您確實應該爲新開發做準備,您可以改爲使用$ fileip = file_get_contents(「test.txt」),它將該文件的內容讀入緩衝區。

0

要輸出的文本文件的內容:

$fh = fopen('myfile.txt', 'r'); 
$text = fread($fh, filesize('myfile.txt')); 
echo $text; 
2

一個完整的例子。

<?php 
    $fileip = file_get_contents("test.txt"); 

    echo($fileip); 
?>