时间:2021-07-01 10:21:17 帮助过:2人阅读
php是短连接,一次性加载然后读取不好做
存入session或者cookie中
写个方法读取csv文件内容,单例模式调用,不可行?
存入session或者cookie中
这个应该可以。
写个方法读取csv文件内容,单例模式调用,不可行?
我使用单例模式读取的数据放到了一个static变量里面。
但每次还是要load。
要load是什么意思?
要load是什么意思?
我设置了一个static的count变量,每次调用load_file的时候就打印一下。
在两个不同的界面上,
都打印
count = 1;
最好贴出代码看看。
最好贴出代码看看。
"; $index ++; } public function get_data($key) { if (empty($this->description)) { $this->load_file(); } if (array_key_exists($key, $this->description)) return $this->description[$key]; return array(); }}?>
每次都打印
load_file: 0
$key, $this->description是否有值,有值的话,各是什么?
由于每次请求都是单独的进程,所以“普通变量”是无法共享的。可以将数据放置到可以统一访问的地方:
1.文件中(不就是你原来的文件么。。嘻嘻,其实可以存成k v数组,不必每次读取csv文件)
2.session中。
3.内存中(参考memcached、redis等内存缓存的原理,kv的常用存储)
4.数据库中。
5.其他可共享的storage中。
关键不在于是不是load一次。而在于load的性能。
$key, $this->description是否有值,有值的话,各是什么?
是有值的
由于每次请求都是单独的进程,所以“普通变量”是无法共享的。可以将数据放置到可以统一访问的地方:
1.文件中(不就是你原来的文件么。。嘻嘻,其实可以存成k v数组,不必每次读取csv文件)
2.session中。
3.内存中(参考memcached、redis等内存缓存的原理,kv的常用存储)
4.数据库中。
5.其他可共享的storage中。
关键不在于是不是load一次。而在于load的性能。
我想了想,还是放到session中把。load是调用fgetcsv得到数据。实际上数据也就400行左右,使用的人也不多,性能还可以。
如果存成k v数组的话,是放到$GLOBALS[]里面吗?因为好几个php文件都要用。