Re: [請益] 輸出csv檔
※ 引述《alexblue (倒數27天退伍)》之銘言:
: ※ 引述《foxzgerald (O⊥M)》之銘言:
: : $content 的內容是什麼? (陣列或字串?)
: : 以及 $content 的處理流程是什麼?
: : 或許可以多提供些程式碼的片段;
: : 因為這些資訊尚不足提供具體的建議。
: : 但是有個方向可以參考一下:
: : $content 可能需用 str_replace 先進行字串的脫序
: 例如 $content="測試,CVS輸出";
: 小弟原本的作法 是 $content=str_replace(",",",",$content);
: 再輸出成cvs檔 是OK的!! 但我想要保留逗號 不要變成全形的逗號的作法!!
如果你舉例的這個 $content 是一筆紀錄,那各欄位的區隔標誌是什麼?
如果區隔標誌是半形逗號,那你的每個欄位內容就應該不應該有逗號存在。
我舉個例子:
$good_record = "王大明|男性|2000.01.01|大家好,我是王大明";
上面可以切出四個欄位,分別是姓名、性別、生日、自我介紹。
區隔標誌是「|」。
$bad_record = "王大明,男性,2000.01.01,大家好,我是王大明";
這筆紀錄的區隔標誌是「,」。
這種紀錄絕對會因為使用者在自我介紹裡面輸入了「,」,使得欄位被切成五個。
foxzgerald 前輩問你的是,你的 $content 到底是不是一筆紀錄。
* 如果「是」,很抱歉,這是最差的設計方式,因為不管你用什麼作區隔,
都有可能因為使用者的任意輸入造成系統的誤判。
最佳解是把紀錄存成陣列,例如:
$best_record = {"王大明", "男性", "2000.01.01", "大家好,我是王大明"};
這種紀錄要作 CSV 輸出只要用輸出這種格式:
"$best_record[1]","$best_record[2]","$best_record[3]","$best_record[4]"
輸出後每個欄位前後都有「"」,自我介紹裡面的「,」會被「"」包起來,
不會被 CSV 閱讀軟體或 parser 判斷為欄位區分字元。
* 如果不是,那 $content 到底是什麼?
如果 $content 就是欄位內容的話,前後加上「"」不會有問題才對。
--
╓╥╥╖╓─╥╖ ╓─╥╖ ╓ ╓╖ ╓─╥╖ ╓─╥╖ ╓╖╓╖
╟╢ ║ ╟╢ ║ ╙╜ ║ ╟╢ ║ ╟╢ ║ ╟╢ ║║╟╢
╟╢ ║ ╟╢ ╟─ ╟─╫╢ ║ ╟╢ ╟─╫╜ ║║╟╢
╟╢ ║ ╟╢ ║ ╓╖ ║ ╟╢ ║ ╟╢ ║ ║ ║║╟╢
╙╨╜ ╙─╨╜ ╙─╨╜ ╙ ╙╜ ╙─╨╜ ╙ ╙╜ ╙╙╨╜
獅子男
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.113.163.30
※ 編輯: JoeHorn 來自: 59.113.163.30 (11/23 05:56)
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章