PHP读写问题,急啊。。在线等。 本帖最后由 xuzuning 于 2011-09-20 15:42:13 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这位兄弟,你可以用memcached啊,memcached有自动过期功能,有动作的时候就设置一下动作key,同时把过期设置成5个小时。至于其他判断就很简单了 Fatal error: Class 'MemCachedClient' not found还要给Php装扩展吗?这个我没办法改啊 就是存储的时候直接存储时间戳,不转换成日期格式。取出来的时候不用strtotime,直接相减就行了啊 直接设置cookie就可以了帐号登陆时候设置cookie,失效时间为5小时如果有动作,那么就继续设置cookie,失效时间为5小时如果5小时没有动作,cookie消失了,登陆就失效了 用数组会好一些。参考:// 这个放在函数外面,最好统一设置,保持系统时间的一致。date_default_timezone_set ( 'Asia/Chongqing' );function is_send_codes($code, $cache_path = "./codelist.txt") { $fp = @fopen ( $cache_path, 'r+' ); if (FALSE === $fp) { $fp = @fopen ( $cache_path, 'w+' ); } // 读取文件 $data_string = NULL; while ( ! feof ( $fp ) ) { $data_string .= fread ( $fp, 8192 ); } fclose ( $fp ); if ($data_string != "") { $data = unserialize ( $data_string ); // 反序列化,转化成数组 } else { $data = array (); // 默认为空数据 } // 没有缓存过该帐号 if (! isset ( $data [$code] )) { $data [$code] = time (); $fp = fopen ( $cache_path, 'w+' ); fwrite ( $fp, serialize ( $data ) ); fclose ( $fp ); return TRUE; } // 缓存过,但超时 if (time () - $data [$code] > 60 * 60 * 5) { $data [$code] = time (); $fp = fopen ( $cache_path, 'w+' ); fwrite ( $fp, serialize ( $data ) ); fclose ( $fp ); return TRUE; } return FALSE;} 关于类与对象的一个小问题 explain具体看哪个参数,怎么修改优化?困扰我很久的问题! 文本输入框 怎么学习php php css 编码问题 PDF乱码的问题 请问有没有关于YAHOO或SINA的上传图片的API 项目转包,给个报价,本人公司接的单子,做不下来。最好是陕西的高手!! 学 php 面向对象 大家帮帮我! 请问,域名查询怎么实现? 右击查看源码出现乱码 ajax传来的json数据,php如何解析
还要给Php装扩展吗?这个我没办法改啊
帐号登陆时候设置cookie,失效时间为5小时
如果有动作,那么就继续设置cookie,失效时间为5小时如果5小时没有动作,cookie消失了,登陆就失效了
date_default_timezone_set ( 'Asia/Chongqing' );function is_send_codes($code, $cache_path = "./codelist.txt") {
$fp = @fopen ( $cache_path, 'r+' );
if (FALSE === $fp) {
$fp = @fopen ( $cache_path, 'w+' );
}
// 读取文件
$data_string = NULL;
while ( ! feof ( $fp ) ) {
$data_string .= fread ( $fp, 8192 );
}
fclose ( $fp );
if ($data_string != "") {
$data = unserialize ( $data_string ); // 反序列化,转化成数组
} else {
$data = array (); // 默认为空数据
}
// 没有缓存过该帐号
if (! isset ( $data [$code] )) {
$data [$code] = time ();
$fp = fopen ( $cache_path, 'w+' );
fwrite ( $fp, serialize ( $data ) );
fclose ( $fp );
return TRUE;
}
// 缓存过,但超时
if (time () - $data [$code] > 60 * 60 * 5) {
$data [$code] = time ();
$fp = fopen ( $cache_path, 'w+' );
fwrite ( $fp, serialize ( $data ) );
fclose ( $fp );
return TRUE;
}
return FALSE;
}