是否有可能將PHP數組存儲到我的服務器,現在它總是在有人從CSV文件重新加載頁面時創建,但這是不必要的,因爲該文件僅在每小時後纔有機會。提高頁面性能,保存服務器上的PHP數組?
自動櫃員機,頁面需要9秒加載,這是相當長的。 CSV文件具有10k +行,每行9個元素,因此如果服務器不必爲每個用戶處理100k個元素,那麼對於性能來說這將非常有用。
我已經有一個cronjob用於下載csv文件,所以如果解析命令在下載完成後纔會執行,每小時只執行一次。
的cronjob:
<?php
function download_remote_file($file_url, $save_to) {
$content = file_get_contents($file_url);
file_put_contents($save_to, $content);
}
download_remote_file(<url here>, realpath(".") . '/dump.csv');
?>
,這將發生在頁面的每一個重載:
1:解析數據陣列
$url = 'dump.csv';
$csvData = file_get_contents($url);
$lines = explode(PHP_EOL, $csvData);
$array = array();
foreach ($lines as $line) {
$line = str_replace("\\", "\", $line);
$line = str_replace("#", "#", $line);
$array[] = str_getcsv($line);
第二:通過數組的Javascript
var array = <?php echo json_encode($array) ?>;
第3:創建HTML表
//some code
4:初始化數據表插件
$(document).ready(function() {
createtable();
$('#scoreboard').DataTable({
"iDisplayLength": 50,
language: {
decimal: ".",
},
"lengthMenu": false,
"bLengthChange": false
});
});
有什麼事可以做更快?
就像上面提到的那樣,保存php數組服務器端或者可能以某種方式保存帶有HTML表的JS數組?
-Innerwolf
您可以嘗試將分析的數組存儲在會話或Memcached中。也許存儲一個PHP文件與硬編碼數組。打開CSV文件,解析它,保存到PHP文件。然後加載PHP文件。 –
是不是有沒有存儲在數據庫中的原因? – CD001
我認爲數據庫是不必要的,因爲它也適用於php。我也不知道如何將一個文件從一個url直接存儲到sql – Innerw0lf