其實(shí)最大的一個區(qū)別,PHP中有自帶的csv函數(shù),可以直接拿來使用,而Excel文件需要重新寫入。你這個問題我之前測試過一個大數(shù)據(jù),股票數(shù)據(jù)文件,股票數(shù)據(jù)文件用csv來保存的,將csv文件的數(shù)據(jù)直接保存在數(shù)據(jù)庫里很便捷。而excel文件保存的時候,會出現(xiàn)亂碼的問題,總之,文本文件和二進(jìn)制文件保存方式是有區(qū)別的。建議在項目用csv文件格式進(jìn)行導(dǎo)入導(dǎo)出數(shù)據(jù)。

站在用戶的角度思考問題,與客戶深入溝通,找到袁州網(wǎng)站設(shè)計與袁州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋袁州地區(qū)。
雖然有Excel操作類,不建議使用。php操作excel本來就很不地道,表格復(fù)雜點(diǎn)就出錯,特別是在linux系統(tǒng)上就更麻煩了。
CSV是通用格式,你可以用excel另存為csv格式,再交給php處理。php有專門的fgetcsv()來讀取csv中的數(shù)據(jù)。
php導(dǎo)出csv文件大小無法去除限制,但是可以通過以下方法達(dá)到目的,用到的工具:notepad++,步驟如下:
找到php.ini配置文件,需要修改以下三處參數(shù):
post_max_size?=?200M?//按需調(diào)整
upload_max_filesize?=?200M?//按需調(diào)整
max_file_uploads?=?200????//按需調(diào)整
2.修改完成以后重啟php環(huán)境(IIS,apache,ngixg),重啟后生效,修改完以上三處,導(dǎo)出csv文件大小就不會報錯。
注意事項:php.ini里邊的大小參數(shù)不易太大,20m左右比較合適。
思路:
讀取csv文件,每讀取一行數(shù)據(jù),就插入數(shù)據(jù)庫
示例
文件夾結(jié)構(gòu)
/
file.csv????//csv大文件,這里只模擬三行數(shù)據(jù),不考慮運(yùn)行效率(PS:csv文件格式很簡單,文件一般較小,解析很快,運(yùn)行效率的瓶頸主要在寫入數(shù)據(jù)庫操作)
index.php????//php文件
file.csv
singi,20
lily,19
daming,23
index.php
/**
*?讀取csv文件,每讀取一行數(shù)據(jù),就插入數(shù)據(jù)庫
*/
//獲取數(shù)據(jù)庫實(shí)例
$dsn?=?'mysql:dbname=test;host=127.0.0.1';
$user?=?'root';
$password?=?'';
try?{
$db?=?new?PDO($dsn,?$user,?$password);
}?catch?(PDOException?$e)?{
echo?'Connection?failed:?'?.?$e-getMessage();
}
//讀取file.csv文件
if?(($handle?=?fopen("file.csv",?"r"))?!==?FALSE)?{
while?(($row?=?fgetcsv($handle,?1000,?","))?!==?FALSE)?{
//寫入數(shù)據(jù)庫
$sth?=?$db-prepare('insert?into?test?set?name=:name,age=:age');
$sth-bindParam(':name',$row[0],PDO::PARAM_STR,255);
$sth-bindParam(':age',$row[1],PDO::PARAM_INT);
$sth-execute();
}
fclose($handle);
}
數(shù)據(jù)表
CREATE?TABLE?`test`?(
`id`?INT(10)?UNSIGNED?NOT?NULL?AUTO_INCREMENT,
`name`?VARCHAR(255)?NULL?DEFAULT?''?COLLATE?'utf8mb4_bin',
`age`?INT(10)?NULL?DEFAULT?'0',
PRIMARY?KEY?(`id`)
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;
運(yùn)行結(jié)束后,數(shù)據(jù)庫中會插入csv中的三行數(shù)據(jù)
網(wǎng)站欄目:phpcsv大數(shù)據(jù),php可以做大數(shù)據(jù)嗎
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article12/hshpdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站營銷、外貿(mào)建站、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)