2016-06-19 80 views
1

你好傢伙我是新來的PHP。我有一個註冊表單,我試圖每次向該文件寫入每行用戶一行。這是我有,但由於某種原因,它不工作。我正在使用Windows。提前致謝。php一次寫入一行文件

$outputstring = $fname. "\t". $lname. "\t". $email. "\t". $address. "\t". $phone. "\t". $login. "\n"; 

@ $fp = fopen("orders.txt", 'ab'); 

flock($fp, LOCK_EX); 

if(!$fp) 
{ 
    echo "<h1>Registrtion failed</h1></body></html>"; 
    exit; 
} 

fwrite($fp, $outputstring, strlen($outputstring). "\n"); 
flock($fp, LOCK_UN); 
fclose($fp); 
+0

我不相信這是'爲模式B'選項,所以'的fopen( 「orders.txt」, 'A');'就足夠了。該文件是否可寫? –

+0

imo,首先從'@ $ fp = fopen(「...' - 刪除'@' - 你想看到每一個錯誤,警告和通知,並修復它們:)接下來,你想追加到文件。好吧,如果它不存在呢?因此,在'fopen append'之前對文件進行測試,如果文件不存在,則創建文件。不要依賴'it should create it anyway behavior'作爲這並不一定適用於網絡共享和可移動設備等。 –

+0

此外,fwrite($ fp,$ outputstring,strlen($ outputstring)。「\ n」);'沒有任何意義;它應該是'fwrite ($ fp,$ outputstring。「\ n」);'(第三個參數是可選的,而''n''換行符應該被附加到數據中,而不是它的長度)。 –

回答

0

你可以通過EOL爆炸你的句子,然後循環做的伎倆。

foreach(explode(PHP_EOL, $paragraph) as $sentence) 
    if(!fwrite($handle , $sentence)) die('error writing');