Re: [請益] 輸出csv檔

看板PHP作者 (獅子男)時間18年前 (2006/11/23 05:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/9 (看更多)
※ 引述《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)
文章代碼(AID): #15PC5nrH (PHP)
討論串 (同標題文章)
文章代碼(AID): #15PC5nrH (PHP)