2012-06-18 28 views
0

我有一個文件「tw.txt」,裏面有文本「test text」。(php)fwrite擦除並且不寫

如果我嘗試在「tx.txt」中使用fwrite寫入「lol」,則內容(「測試文本」)會被簡單地刪除而不會被替換。

沒有服務器顯示的錯誤,但是,我可以看到我的Error: can't write in file.

CHMOD被設置爲777每一個文件和文件夾,從「VAR」代表該網站的文件夾。如果我試圖用fopen讀取文件,沒問題。我試圖用PHP更改chmod ...沒有成功。我試圖追加,它抹去。

該代碼在另外兩臺服務器上正常工作。

任何線索?謝謝。

<?php 

ini_set('display_errors', 'On');  
ini_set('allow_url_fopen', '1'); 
error_reporting(E_ALL); 

$fd=fopen("tw.txt","w") or die("Error: can't open file."); 
//chmod("tw.txt", 511);  
fwrite($fd,"lol") or die('Error: can't write in file.'); 
fclose($fd); 
?> 
+0

您沒有關閉該文件?什麼是開發服務器的操作系統?每次機會都是風險嗎?另外,爲什麼allow_url_fopen? –

+0

你可以在手冊中找到[fopen](http://php.net/manual/en/function.fopen.php)。這是第二個參數是模式。你可以檢查**可能的模式清單**並找出你需要的。你也可以使用帶有標誌** FILE_APPEND **的[file_put_contents](http://php.net/manual/en/function.file-put-contents.php)。 –

+0

謝謝你的接吻者。你有沒有關閉文件?=>這是一段代碼,我以前沒有打開過這個文件。它的Linux(開發文件夾等,家)。 url_fopen是我嘗試過的(fwrite,「http:// ..」)。 –

回答

0
     $myFile = 'tw.txt'; 
        $fh = fopen($myFile, 'w') or die("can't open file"); 
        fwrite($fh, 'lol'); 
        fclose($fh); 
+0

我離開了幾個小時我的電腦,然後當我回來時,我嘗試了你的代碼:它的工作原理。出於好奇,我再次測試了我的舊測試代碼和我的主代碼:他們也工作。也許服務器在更改chmod之前有一種延遲?這很奇怪。無論如何感謝您的回答! –

1

您是否嘗試過其他開啓模式?

如果需要追加一些數據,你應該嘗試這樣的:

$fd=fopen("tw.txt","a+") 
+0

感謝您的回答。我也試過了,它不起作用。 –