如何只加载一次文件到变量中 数据 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 php是短连接,一次性加载然后读取不好做 写个方法读取csv文件内容,单例模式调用,不可行? 我使用单例模式读取的数据放到了一个static变量里面。但每次还是要load。 我设置了一个static的count变量,每次调用load_file的时候就打印一下。在两个不同的界面上,都打印count = 1; <?phpclass ***{ private $description; private static $instance; private function __construct() { } public static function get_instance() { if (!(self::$instance instanceof self)){ self::$instance = new self; } return self::$instance; } private function load_file() { static $index = 0; // load data.. echo "load_file: ".$index."<br>"; $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的性能。 我想了想,还是放到session中把。load是调用fgetcsv得到数据。实际上数据也就400行左右,使用的人也不多,性能还可以。如果存成k v数组的话,是放到$GLOBALS[]里面吗?因为好几个php文件都要用。 谁能帮我看下,为什么列表的分页功能出错? 请教一个正则,试了半天没试出来~~~ 2011年4月;用正则怎么写?????? 到底怎么把aaa.sql导入mysql 求教PHP连接MSSQL的问题 可否在inpu中使用变量? PHP数组如何镶嵌循环? 请问php如何解析音频、视频获取信息? 将流量统计功能封装后遇到的问题? 建议大家都谈谈PHP的高级应用,如OOP,PEAR,MVC。。。 php在函数外声明global变量有什么用? MYSQL数据库连接问题: MySQL 4.1+ using the old insecure authentication
我使用单例模式读取的数据放到了一个static变量里面。
但每次还是要load。
我设置了一个static的count变量,每次调用load_file的时候就打印一下。在两个不同的界面上,
都打印
count = 1;
{
private $description;
private static $instance;
private function __construct()
{
} public static function get_instance()
{
if (!(self::$instance instanceof self)){
self::$instance = new self;
}
return self::$instance;
} private function load_file()
{
static $index = 0;
// load data..
echo "load_file: ".$index."<br>";
$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
1.文件中(不就是你原来的文件么。。嘻嘻,其实可以存成k v数组,不必每次读取csv文件)
2.session中。
3.内存中(参考memcached、redis等内存缓存的原理,kv的常用存储)
4.数据库中。
5.其他可共享的storage中。
关键不在于是不是load一次。而在于load的性能。
我想了想,还是放到session中把。load是调用fgetcsv得到数据。实际上数据也就400行左右,使用的人也不多,性能还可以。如果存成k v数组的话,是放到$GLOBALS[]里面吗?因为好几个php文件都要用。