十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這里的方法是利用fputcsv寫CSV文件的方法,直接向?yàn)g覽器輸出Excel文件。

公司主營業(yè)務(wù):成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出昌吉免費(fèi)做網(wǎng)站回饋大家。
復(fù)制代碼
代碼如下:
//
輸出Excel文件頭,可把user.csv換成你要的文件名
header('Content-Type:
application/vnd.ms-excel');
header('Content-Disposition:
attachment;filename="user.csv"');
header('Cache-Control:
max-age=0');
//
從數(shù)據(jù)庫中獲取數(shù)據(jù),為了節(jié)省內(nèi)存,不要把數(shù)據(jù)一次性讀到內(nèi)存,從句柄中一行一行讀即可
$sql
=
'select
*
from
tbl
where
……';
$stmt
=
$db-query($sql);
//
打開PHP文件句柄,php://output
表示直接輸出到瀏覽器
$fp
=
fopen('php://output',
'a');
//
輸出Excel列名信息
$head
=
array('姓名',
'性別',
'年齡',
'Email',
'電話',
'……');
foreach
($head
as
$i
=
$v)
{
//
CSV的Excel支持GBK編碼,一定要轉(zhuǎn)換,否則亂碼
$head[$i]
=
iconv('utf-8',
'gbk',
$v);
}
//
將數(shù)據(jù)通過fputcsv寫到文件句柄
fputcsv($fp,
$head);
//
計(jì)數(shù)器
$cnt
=
0;
//
每隔$limit行,刷新一下輸出buffer,不要太大,也不要太小
$limit
=
100000;
//
逐行取出數(shù)據(jù),不浪費(fèi)內(nèi)存
while
($row
=
$stmt-fetch(Zend_Db::FETCH_NUM))
{
$cnt
++;
if
($limit
==
$cnt)
{
//刷新一下輸出buffer,防止由于數(shù)據(jù)過多造成問題
ob_flush();
flush();
$cnt
=
0;
}
foreach
($row
as
$i
=
$v)
{
$row[$i]
=
iconv('utf-8',
'gbk',
$v);
}
fputcsv($fp,
$row);
}
優(yōu)點(diǎn)簡單易用,非常節(jié)省內(nèi)存,不依賴第三方類庫。
while($r=mysql_fetch_assoc($rs))?{
file_put_contents('文件名',?'"'?.?join('","',?$r)?.?'"'?.PHP_EOL,?FILE_APPEND);
}
//第一種 ?php$conn = mysql_connect("主機(jī)名","用戶名","密碼");mysql_select_db("數(shù)據(jù)庫名",$conn);$sql = "select * from user";$result = mysql_query($sql);$data="";while($row = mysql_fetch_row($result)){ foreach($row as $v){ $data .=$v."|"; //加個樹線隔開字段 } nl2br($data); //讀完一行回車}file_put_contents("abc.txt",$data); //第二種?php$filename = "abc.txt";$res = fopen($filename,"r");while(!feof($res)){$buffer = fgets($res);$buffer = str_replace(' ', '|', $buffer); $array = explode('|', $buffer); foreach($array as $v){if(strlen($v)0){$arr[] = $v;}}}fclose($res);//組裝數(shù)組插入數(shù)據(jù)庫就可以了
從數(shù)據(jù)庫中讀取存儲了與用戶有關(guān)的資料,然后把這些資料放到一個以用戶ID(userid)命名的文件夾中,再在這個文件夾里創(chuàng)建一個userid.doc文件,用于存放取到的用戶資料,用戶資料包括文字類型、圖片。