PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 41007872 bytes)
很明顯是內(nèi)存溢出。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),渭濱企業(yè)網(wǎng)站建設(shè),渭濱品牌網(wǎng)站建設(shè),網(wǎng)站定制,渭濱網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,渭濱網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。1.直接修改PHP.INI
memory_limit = xxxx M ;
2.修改.htaccess
php_value memory_limit xxx M
3.直接在程序頁(yè)面上修改。
ini_set(‘memory_limit’, ‘xxx M);
上述方案都是通過調(diào)整內(nèi)存大小限制,沒法解決根本問題。達(dá)到更高一量級(jí)的數(shù)據(jù),內(nèi)存肯定不夠用。
請(qǐng)看代碼:
$list = function () use ($result, $areaList, $industryList, $channelList, $useStatusList, $billServiceFollow, $serviceOrderAmount, $statistics, $adminUserInfo, $implementerInfo, $salesInfo) {
foreach ($result as $value) {
$value['province_name'] = $areaList[$value['province_id']] ?? '無';//省份
$value['city_name'] = $areaList[$value['city_id']] ?? '無';//城市
$industry = $value['industry'] ?? 0;
$value['industry_name'] = $industryList[$industry] ?? '無';//行業(yè)
$channel = $value['channel'] ?? 0;
$value['channel_name'] = $channelList[$channel] ?? '無';//客戶來源
$useStatus = $value['use_status'];
$value['contract_type'] = $useStatusList[$useStatus] ?? '';//合同類型
if ($useStatus == 1) {//正式合同
$startTime = $value['formal_starttime'] ?? 0;
if ($startTime == '0000-00-00 00:00:00') {
$startTime = 0;
}
$endTime = $value['formal_endtime'] ?? 0;
if ($startTime == '0000-00-00 00:00:00') {
$endTime = 0;
}
$value['contract_begin_date'] = !empty($startTime) ? date('Y-m-d', strtotime($startTime)) : '無';
$value['contract_end_date'] = !empty($endTime) ? date('Y-m-d', strtotime($endTime)) : '無';
} else {//試用合同
$startTime = $value['tryout_starttime'] ?? 0;
if ($startTime == '0000-00-00 00:00:00') {
$startTime = 0;
}
$endTime = $value['tryout_endtime'] ?? 0;
if ($startTime == '0000-00-00 00:00:00') {
$endTime = 0;
}
$value['contract_begin_date'] = !empty($startTime) ? date('Y-m-d', strtotime($startTime)) : '無';
$value['contract_end_date'] = !empty($endTime) ? date('Y-m-d', strtotime($endTime)) : '無';
}
$value['acenum'] = $statistics[$value['id']]['acenum'] ?? 0;//賬套數(shù)量
$value['usernum'] = $statistics[$value['id']]['usernum'] ?? 0;//會(huì)計(jì)數(shù)量
$value['vounum'] = $statistics[$value['id']]['vounum'] ?? 0;//憑證
$value['billnum'] = $statistics[$value['id']]['billnum'] ?? 0;//上傳票據(jù)
//購(gòu)買票據(jù)數(shù)量
$totalServiceNum = $billServiceFollow[$value['id']]['total_service_num'] ?? 0;
if ($totalServiceNum >= 100000000) {
$totalServiceNum = '不限量';
}
$value['total_service_num'] = $totalServiceNum;
//成交金額
$value['total_recive_amount'] = $serviceOrderAmount[$value['id']]['total_recive_amount'] ?? 0;
$value['create_by_name'] = $adminUserInfo[$value['create_by']] ?? '無';
//實(shí)施名稱
$implementer = $value['implement'] ?? 0;
$value['implementer'] = $implementerInfo[$implementer] ?? '無';
//銷售
$sale = $value['sale_id'] ?? 0;
$value['sale'] = $salesInfo[$sale] ?? '無';
$abutment = $value['abutment'] ?? 0;
$value['abutment'] = $salesInfo[$abutment] ?? '無';
yield $value;
}
};
$data['list'] = $list();
//調(diào)用下載excel
$excel = new DownloadExcel();
return $excel->title('客戶列表')->subtitle('')->subject('')->fill('company-list', $data)->download();
內(nèi)存溢出
1.將大結(jié)果集的數(shù)據(jù)單元yield,傳給生成器。
2.通過function()use{};匿名函數(shù)接收生成器作為結(jié)果。$data['list'] = $list();
后續(xù)只需要迭代$data['list']即可。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。