php導(dǎo)出CSV需要注意的一些tip

如有雷同超歌,算你抄襲。


通過引入第三方類phpexcel可以很方便的導(dǎo)出excel,但是實(shí)踐下來切平,生成excel的效率并不高握础,只是單純的做數(shù)據(jù)分析用excel并不明智,最好還是用csv悴品,導(dǎo)出csv的方法極簡單禀综,CSV是一種分隔的 文本文件,它使用逗號來分割值(許多CSV導(dǎo)入/導(dǎo)出工具的實(shí)現(xiàn)也允許使用其它的分隔符)苔严。 簡單的CSV實(shí)現(xiàn)可以禁止字段值中包含逗號或其它特殊字符如換行符定枷。

我們只要簡單幾行代碼就可以實(shí)現(xiàn)

function export_csv($filename,$data)

{

header("Content-type:text/csv");

header("Content-Disposition:attachment;filename=".$filename);

header('Cache-Control:must-revalidate,post-check=0,pre-check=0');

header('Expires:0');

header('Pragma:public');

echo $data;

}

$arr = array(

? ? ? ? ? ? ?array('name'=>'小明','age'=>20,'city'=>'北京'),

? ? ? ? ? ? ? array('name'=>'麗莎','age'=>15,'city'=>'河北'),

);

$str = "姓名,年齡,城市\(zhòng)n";//表頭

foreach($arr as $row)

{

$str .= $row['name'].','.$row['age'].','.$row['city']."\n";

}

export_csv('測試csv',$str); //導(dǎo)出


以上代碼就可以實(shí)現(xiàn)導(dǎo)出,但是我們發(fā)現(xiàn)導(dǎo)出的csv是亂碼届氢,所以我們需要做一次轉(zhuǎn)碼

這里不賣關(guān)子欠窒,直接貼出我目前為止遇到的需要做處理的字符

"\r\n", "\r", "\n",這幾個都是換行符,不過濾掉會導(dǎo)致CSV亂行

"," 逗號在CSV中作為分隔符,也會導(dǎo)致亂行

"\"" 雙引號這個問題是早上剛發(fā)現(xiàn)的岖妄,會導(dǎo)致csv換行失效型将,過濾掉吧

此外,

if (preg_match("/[\x7f-\xff]/", $str)) 這里判斷是否匹配漢字荐虐,

如果是七兜,我們將他轉(zhuǎn)為gbk2312才能在csv中正常顯示,

如果轉(zhuǎn)完是個空字符串,我們將原字符串轉(zhuǎn)成gbk格式福扬,

做這一步是為了處理繁體字腕铸,繁體字需要轉(zhuǎn)成gbk,否則不顯示

```

function gb2312($str)

{

$str = str_replace(array("\r\n", "\r", "\n",",","\""), array("","","","&",""), $str);

if (preg_match("/[\x7f-\xff]/", $str))

{

$inconvStr = iconv('utf8',"gbk2312",$str);

$inconvStr = empty($inconvStr)?iconv('utf8',"gbk",$str):$inconvStr;

}

return $inconvStr;

}


以上 ,是本帖的核心內(nèi)容铛碑,如有雷同狠裹,算你抄襲。

導(dǎo)報表遇到最棘手的問題莫過于汽烦,數(shù)據(jù)太多導(dǎo)致內(nèi)存泄露或超出maxexcutetime涛菠,

希望下次可以與大家分享如何應(yīng)對這些問題的方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末刹缝,一起剝皮案震驚了整個濱河市碗暗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌梢夯,老刑警劉巖言疗,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異颂砸,居然都是意外死亡噪奄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門人乓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來勤篮,“玉大人,你說我怎么就攤上這事色罚∨龅蓿” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵戳护,是天一觀的道長金抡。 經(jīng)常有香客問我,道長腌且,這世上最難降的妖魔是什么梗肝? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮铺董,結(jié)果婚禮上巫击,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好坝锰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布粹懒。 她就那樣靜靜地躺著,像睡著了一般什黑。 火紅的嫁衣襯著肌膚如雪崎淳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天愕把,我揣著相機(jī)與錄音,去河邊找鬼森爽。 笑死恨豁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的爬迟。 我是一名探鬼主播橘蜜,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼付呕!你這毒婦竟也來了计福?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤徽职,失蹤者是張志新(化名)和其女友劉穎象颖,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姆钉,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡说订,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了潮瓶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陶冷。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖毯辅,靈堂內(nèi)的尸體忽然破棺而出埂伦,到底是詐尸還是另有隱情,我是刑警寧澤思恐,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布沾谜,位于F島的核電站,受9級特大地震影響壁袄,放射性物質(zhì)發(fā)生泄漏类早。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一嗜逻、第九天 我趴在偏房一處隱蔽的房頂上張望涩僻。 院中可真熱鬧,春花似錦、人聲如沸逆日。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽室抽。三九已至搪哪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坪圾,已是汗流浹背晓折。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兽泄,地道東北人漓概。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像病梢,于是被迫代替她去往敵國和親胃珍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容