2012-01-08 78 views
0

我不斷收到這個錯誤,當我嘗試讀取txt文件的內容:在命令行歡迎資源ID#5

<?php 
      $handle = fopen ("php://stdin","r"); 
      $line = fgets($handle); 
      fwrite(STDOUT, "Welcome $handle"); 
      ?> 

我做:

的index.php cat texte.txt | php index.php

其中texte.txt包含名稱。兩個文件txt和php都在同一個文件夾中。我曾經工作得很好,我不知道爲什麼這個錯誤來自我的情況。

+0

有什麼錯誤? – 2012-01-08 00:20:57

+0

['fopen()'](http://php.net/manual/en/function.fopen.php)返回資源標識符,而不是文件內容。演示:http://codepad.org/EPsrIlSZ – 2012-01-08 00:21:33

回答

5

因爲您曾經輸出$line而不是$handle

+0

哦,是的,thanx,所以,如果文件包含4行,$ handle將包含所有行,我必須逐行顯示它? – Malloc 2012-01-08 00:26:12

+0

@Malek'$ handle'不包含行......它只是一個句柄,用於告訴php當你詢問它們時(比如'fgets'),在哪裏找到更多的行。 – 2012-01-08 00:27:14

+1

'$ handle'是文件的句柄,你必須將它傳遞給'fgets()'4次。 – 2012-01-08 00:27:44

1

您正在看到PHP的「資源」對象/變量的字符串表示形式。 fwrite$line,你應該得到你想要的結果。

例子:

<?php 
echo fopen('foo.txt', 'r'); 

輸出:

Resource id #2