當(dāng)前位置:博客首頁>>PHP >> 閱讀正文

php輸出xml(導(dǎo)出excel)數(shù)據(jù)過長時被截斷

作者: 鄭曉 分類: PHP 發(fā)布于: 2016-02-04 13:53 瀏覽:7,598 評論(6)


在使用xml來導(dǎo)出excel時,發(fā)現(xiàn)小數(shù)量(1k以下)時能正常導(dǎo)出excel,但將導(dǎo)出數(shù)量調(diào)大(幾K)時,發(fā)現(xiàn)導(dǎo)出的excel數(shù)據(jù)不全。
(在我本地是好的,在線上服務(wù)器跑就有問題。。。)
檢查導(dǎo)出的xml數(shù)據(jù),發(fā)現(xiàn)內(nèi)容被截斷了,有時連xml標(biāo)簽都不全。

php-xml-excel
首先懷疑是輸出的內(nèi)容字節(jié)過長,超出了環(huán)境配置的上限。檢查了output_buffering和nginx的fastcgi_buffer相關(guān)設(shè)置,都沒有問題。和我本地的值一樣,修改后也沒有影響。
之后就Google了下,發(fā)現(xiàn)有出現(xiàn)類似情況的,是權(quán)限問題,于是去檢查nginx的錯誤日志error.log。
發(fā)現(xiàn)在導(dǎo)出操作時有如下錯誤記錄:

2016/02/04 09:47:53 [crit] 19027#0: *967389 mkdir() "/tmp/fastcgi_temp/xxx" failed (13: Permission denied) while reading upstream, client:xxx.xxx.xx.xxx

看來確實是權(quán)限有問題,導(dǎo)出時nginx要創(chuàng)建一個/tmp/fastcgi_temp/xxx的目錄,但失敗了。
跑去/tmp下檢查,發(fā)現(xiàn)根本沒有fastcgi_temp目錄??!于是手動新建目錄/tmp/fastcgi_temp/,并設(shè)置所有者www、權(quán)限744。
重新運行導(dǎo)出,xml被截斷的問題已解決。

? ? ? ?

本文采用知識共享署名-非商業(yè)性使用 3.0 中國大陸許可協(xié)議進行許可,轉(zhuǎn)載時請注明出處及相應(yīng)鏈接。

本文永久鏈接: http://yjfs.org.cn/php-xml-excel-truncated.html

php輸出xml(導(dǎo)出excel)數(shù)據(jù)過長時被截斷:目前有6 條留言

用戶評論頭像 萬物閣發(fā)表于 2016年05月02日 12:56[回復(fù)]

我來試試,申請友鏈

用戶評論頭像 themebetter發(fā)表于 2016年03月17日 09:32[回復(fù)]

技術(shù)性的文章總是那么受歡迎,支持博主!

用戶評論頭像 好書網(wǎng)發(fā)表于 2016年03月08日 14:49[回復(fù)]

強烈來支持、贊一個

用戶評論頭像 益群網(wǎng)發(fā)表于 2016年02月29日 14:54[回復(fù)]

看一看來瞧一瞧,這個博客真是好!

用戶評論頭像 Yusure發(fā)表于 2016年02月10日 20:32[回復(fù)]

解決問題還是要從日志開始定位問題

發(fā)表評論

change vcode