php導(dǎo)出數(shù)據(jù)excel有專門的庫,當(dāng)導(dǎo)出少量數(shù)據(jù)的時候速度很快,但是當(dāng)數(shù)據(jù)量大的時候就會存在服務(wù)器內(nèi)存不夠之類的。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了浦北免費建站歡迎大家使用!
所以在導(dǎo)出大量數(shù)據(jù)的時候就應(yīng)該分頁查詢數(shù)據(jù),避免服務(wù)器宕機。正好PHP提供了fputcsv函數(shù)可以將數(shù)據(jù)寫入到csv文件中。
這樣我們就可以使用PHP對數(shù)據(jù)進(jìn)行分頁查詢,再寫入到csv文件中。
理論上是沒有,實際上要看服務(wù)器的內(nèi)存大小和運算能力,,,,在導(dǎo)出過程中,如果時間過長,長過會話保持時間,,容易導(dǎo)致會話失效.
PHP從數(shù)據(jù)庫分多次讀取100萬行記錄,和分多次將100萬行寫入文本文件都沒問題
Excel可以支持100萬行記錄,Excel 2003最大支持65536行,從2007版開始支持104萬行了,目前2007的盜版應(yīng)該比較普及了-_-! 問清楚你的客戶是什么版本。
你要導(dǎo)出excel的理由是非常充分和正確的,應(yīng)該繼續(xù)堅持。業(yè)務(wù)人員最熟悉的就是Excel,實在不熟悉現(xiàn)學(xué)現(xiàn)用也比別的快。只是要注意,當(dāng)數(shù)據(jù)量達(dá)到10萬行這個級別時,Excel的公式填充將會非常非常慢,如果再有LOOKUP()公式,基本上十分鐘內(nèi)處理CPU滿載進(jìn)程管理器殺不掉的狀態(tài),這時候其實xampp + phpmyadmin是一個易用性和性能都最平衡的選擇
PHPExcel輸出的是Excel XML格式,有個XML頭和尾,中間是數(shù)據(jù)Body,需要將100萬行都賦值給一個數(shù)組才可以調(diào)用PHPExcel-write(),這容易導(dǎo)致PHP執(zhí)行超時或者內(nèi)存超限,你不妨調(diào)整一下php.ini配置,把超時時間和內(nèi)存限制都改到很大
如果是輸出csv格式,那就太簡單了,你的問題可能是沒給字段內(nèi)容加引號,加上引號再調(diào)用fputcsv試試?其實fputcsv做的事情特別簡單,你甚至可以不管它,自己把CSV文件的每一行拼接好了之后用file_put_contents寫入如果你對php有興趣的話,可以向我一樣在后盾人平臺多看看自己學(xué)習(xí)學(xué)習(xí),時間長了自己就慢慢明白了,希望能幫到你,給個采納吧(?ω?)hiahiahia 謝謝
默認(rèn)只能傳最大 2M 的文件。
不過,可以配置php.ini文件,修改上傳文件大小的限制。
配置php.ini文件 (以上傳500M以下大小的文件為例)
查找以下選項并修改-
file_uploads = On ;打開文件上傳選項
upload_max_filesize = 500M ;上傳文件上限
如果要上傳比較大的文件,僅僅以上兩條還不夠,必須把服務(wù)器緩存上限調(diào)大,把腳本最大執(zhí)行時間變長
post_max_size = 500M ;post上限
max_execution_time = 1800 ; Maximum execution time of each script, in seconds腳本最大執(zhí)行時間
max_input_time = 1800 ; Maximum amount of time each script may spend parsing request data
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)內(nèi)存上限