作者jijikoko (jijikoko)
看板PHP
標題[請益] 關於寫檔案的問題
時間Wed Mar 14 19:29:47 2007
想要把網頁上所有的input寫進檔案.csv
每次輸入都匯寫入檔案的最後面
每筆資料都已"\n"隔開
程式碼大致如下:
if($submit)
{
$fptr=fopen('test.csv', 'w');
fseek($fptr, 0, SEEK_END);
fputs($fptr, $name);
fputs($fptr, ",");
fputs($fptr, $phone);
fputs($fptr, "\n");
fclose($fptr);
}
可是每次按下submit的按鈕時,只會剩下最後一次輸入的資料
我已經用fseek將檔案指標放到最後了
為什麼還是重寫檔案
另外,輸出的檔案所有中文文字都變成了亂碼
要如還才能改成可以正確輸出中文字
還是有辦法可以用excel或是其他編輯器看到正確的中文字
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.22.21.98
1F:推 shingoliang:$fptr=fopen('test.csv', 'a(a+)'); 03/14 19:35
2F:→ shingoliang:a或a+,a+可讀取,下一行移指標就不需要了! 03/14 19:36
3F:推 jijikoko:感謝樓上,第一個問題已解決,卸卸 03/14 19:44
4F:推 shingoliang:亂碼大概是因為衝碼字的關係吧,假設你在寫入的時候 03/14 20:01
5F:→ shingoliang:apache有個函數有開啟會自動幫你把衝碼加\,或者你自 03/14 20:03
6F:→ shingoliang:己加的,那麼,在讀出的時候,必須把\去掉再output! 03/14 20:03
7F:→ shingoliang:stripslashes();應該是吧,沒記錯的話@@" 03/14 20:04
8F:→ shingoliang:阿,沒看清楚你是輸出的檔案變成亂碼= =我覺得是衝碼 03/14 20:05
9F:→ shingoliang:字啦,自己加addslashes("$content"); 03/14 20:05
10F:推 chhuang:輸出到 CSV 最好用 iconv 或 mb_conver 轉 Big5 語系... 03/14 21:47
11F:→ chhuang:Excel 打開的時候才不會出現亂碼 ...如果是 UTF-8 輸出 03/14 21:51
12F:→ chhuang:Excel 匯入的時候自己指定 UTF-8 打開才不會出錯... 03/14 21:52