构造函数:
成都创新互联服务项目包括银海网站建设、银海网站制作、银海网页制作以及银海网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,银海网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到银海省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
function down_xls($data, $keynames, $name='dataxls') {
$xls[] = "htmlmeta http-equiv=content-type content=\"text/html; charset=UTF-8\"bodytable border='1'";
$xls[] = "trtdID/tdtd" . implode("/tdtd", array_values($keynames)) . '/td/tr';
foreach($data As $o) {
$line = array(++$index);
foreach($keynames AS $k=$v) {
$line[] = $o[$k];
}
$xls[] = 'trtd'. implode("/tdtd", $line) . '/td/tr';
}
$xls[] = '/table/body/html';
$xls = join("\r\n", $xls);
header('Content-Disposition: attachment; filename="'.$name.'.xls"');
die(mb_convert_encoding($xls,'UTF-8','UTF-8'));
}
函数引用:
if(strval($_GET['download'])){
$orders = DB::LimitQuery('order', array(
'condition' = $condition,
'order' = 'ORDER BY id DESC',
));
if (!$orders) die('没有符合条件的记录');
$name = 'order_'.date('Ymd');
$kn = array( //excel表列名与数据字段的对应关系
'id' = '订单号',
'price' = '订单金额',
'card' = '代金券',
'create_time' = '下单时间',
'pay_time' = '付款时间',
);
foreach( $orders AS $one ){
$one['create_time'] =date("Y-m-d",$one['create_time']);
$one['pay_time']=date("Y-m-d",$one['pay_time']);
$eorders[] = $one;
}
down_xls($eorders, $kn, $name);
}
当然是在服务器端,但不是保存在内存中,而是保存在文件或数据库中。
默认情况下,php.ini
中设置的
SESSION
保存方式是
files(session.save_handler
=
files),即使用读写文件的方式保存
SESSION
数据,而
SESSION
文件保存的目录由
session.save_path
指定,文件名以
sess_
为前缀,后跟
SESSION
ID,如:sess_c72665af28a8b14c0fe11afe3b59b51b。文件中的数据即是序列化之后的
SESSION
数据了。
如果访问量大,可能产生的
SESSION
文件会比较多,这时可以设置分级目录进行
SESSION
文件的保存,效率会提高很多,设置方法
为:session.save_path="N;/save_path",N
为分级的级数,save_path
为开始目录。
当写入
SESSION
数据的时候,PHP
会获取到客户端的
SESSION_ID,然后根据这个
SESSION
ID
到指定的
SESSION
文件保存目录中找到相应的
SESSION
文件,不存在则创建之,最后将数据序列化之后写入文件。读取
SESSION
数据是也是类似的操作流程,对读出来的数据需要进行解序列化,生成相应的
SESSION
变量。
把你要保存的数据序列化一下,保存到文本中,如果需要修改,则从文本中取出,在反序列化化,在修改后,在序列化一下,保存到文本中。
文本的读写 参考fopen 等函数