簡體   English   中英

PHP在循環時寫入文本文件

[英]PHP writing into text file while looping

我正在開發一個應用程序,用戶可以在其中上傳excel [.xlsx]文件,以將數據轉儲到MySQL數據庫中。 我編程的方式是為每次導入創建一個LOG。 這樣用戶可以查看是否發生了任何錯誤等。在實施日志系統之前,我的腳本運行良好。

實施日志系統后,我可以看到重復的行插入到數據庫中。 同樣die()命令不起作用。

它只是不斷循環!

我在下面編寫了示例代碼。 請告訴我日志方法有什么問題。

注意:如果我刪除日志記錄[Writing into file]腳本,則可以正常工作。

$file = fopen("20131105.txt", "a");
        fwrite($file, "LOG CREATED".PHP_EOL);

        foreach($hdr as $k => $v) {
                $username = $v['un'];
                $address  = $v['adr'];
                $message  = $v['msg'];

                if($username == '') {
                    fwrite($file, 'Error: Missing User Name'.PHP_EOL);
                    continue;
                } else {
                     // insert into database
                 }
            }

        fwrite($file, PHP_EOL."LOG CLOSED");
        fclose($file);
        echo 1;
        die();

首先,您的die語句在循環之后。 它必須在循環中才能結束。

其次,您正在遍歷$hdr 在您的代碼段中未定義。 它必須是一個數組。 它包含什么?

var_dump($hdr);

php手冊中給出的foreach文檔重點介紹


即使在foreach循環之后,仍然保留對$ value和最后一個數組元素的引用。建議通過unset()銷毀它。” [1]


嘗試使用unset($value)在foreach中unset($value) 這可能是重復值的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM