0
我遇到了我的共享主機提供商和我的128Mb內存限制問題。我將AJAX中的數據插入到一個PHP控制器中,該控制器獲取一個文件,解析AJAX中的新數據並用原始內容+新數據覆蓋該文件。我們正在處理一個JSON文件。PHP內存限制與激烈的json文件更新
在這一點上,主人已經把我所有的東西都絆倒了。 JSON的大小達到16Mb之前,廢話擊中風扇。如果我們有任何建議來更有效地整合數據,我將不勝感激。我現在將內存限制甩到-1 - 我很樂意避免這樣做!
這裏是我的代碼
<?php
function appendCurrentFile($payload) {
$_POST['payload'] = null; // CLEAR post payload
ini_set("memory_limit",-1); // Fixes the problem the WRONG WAY
$files = glob('/path/*'); // Get all json files in storage directory
natsort($files); // Files to array
$lastFile = array_pop($files); // Get last file (most recent JSON dump)
$fileData = json_decode(file_get_contents($lastFile)); // Load file contents into it's own array
$payload = json_decode($payload); // Take the POST payload from AJAX and parse into array
$newArray = array_merge($fileData->cards, $payload); // Merge the data from our file and our payload
$payload = null; // Clear payload variable
$fileData->cards = $newArray; // Set the file object array as our new, merged array
$newArray = null; // Clear our merged array
file_put_contents($lastFile, json_encode($fileData, JSON_UNESCAPED_SLASHES)); // Overwrite latest file with existing data + new data.
echo 'JSON updated! Memory Used: '.round((memory_get_peak_usage()/134217728 * 100), 0).'%'; // Report how badly we're abusing our memory
}
?>
https://stackoverflow.com/questions/4049428/processing-large-json-files-in-php –
你抓住的最後一個文件,新數據添加到它,寫一個新的更大的文件,並重復廣告噁心?也許你的問題不是內存分配。 –
請詳細說明。 –