文档章节

php session/完整判断是否https/对象与数组互转/文件下载

wsy5344
 wsy5344
发布于 2015/08/12 09:15
字数 532
阅读 102
收藏 0

(PHP 4 >= 4.3.2, PHP 5)

session_regenerate_id — 使用新生成的会话 ID 更新现有会话 ID

session_regenerate_id() //在不修改当前会话中数据的前提下使用新的 ID 替换原有会话 ID。
//如果启用了 session.use_trans_sid 选项, 那么必须在调用 session_regenerate_id() 函数之后
开始进行输出工作, 否则会导致使用原有的会话 ID。
session_regenerate_id(true)//删除当前会话数据


<?php 
$rs=getdate();

echo sprintf("现在是%s年%s月%s日,%s时%s分%s秒,星期:%s,今年的第%s天",
$rs['year'],$rs['mon'],$rs['mday'],$rs['hours'],
$rs['minutes'],$rs['seconds'],$rs['wday'],$rs['yday']);


以下代码的输出是

$somevar=15;
function addit () {
   GLOBAL $somevar;
   $somevar++ ;
   echo "somevar is $somevar";
}
addit ()

正确:somevar is 16


读取/设置缓存限制器

文档:http://php.net/manual/zh/function.session-cache-limiter.php

请求开始的时候,缓存限制器会被重置为默认值,并且存储在 session.cache_limiter 配置项中。 因此,如果要设置缓存限制器,对于每个请求, 都需要在调用 session_start() 函数之前, 调用 session_cache_limiter() 函数来进行设置。



session_cache_expire

session_cache_expire() 返回 session.cache_expire 的设定值。


请求开始的时候,缓存到期时间会被重置为 180,并且保存在 session.cache_expire 配置项中。 因此,针对每个请求,需要在 session_start() 函数调用之前 调用 session_cache_expire() 来设置缓存到期时间。

文档地址:http://php.net/manual/zh/function.session-cache-expire.php

<?php

//ini_set("session_name", "taoyu");
//session_name("taoyu");
session_start();
//echo session_name();
echo session_id();
echo "<br>";
session_regenerate_id(true);//是否删除原 ID 所关联的会话存储文件。

echo session_id();



判断是否https

function is_https()
	{
		if ( ! empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off')
		{
			return TRUE;
		}
		elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
		{
			return TRUE;
		}
		elseif ( ! empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off')
		{
			return TRUE;
		}

		return FALSE;
	}


对象与数组互转

function arrayToObject($e){
    if( gettype($e)!='array' ) return;
    foreach($e as $k=>$v){
        if( gettype($v)=='array' || getType($v)=='object' )
            $e[$k]=(object)arrayToObject($v);
    }
    return (object)$e;
}
 
function objectToArray($e){
    $e=(array)$e;
    foreach($e as $k=>$v){
        if( gettype($v)=='resource' ) return;
        if( gettype($v)=='object' || gettype($v)=='array' )
            $e[$k]=(array)objectToArray($v);
    }
    return $e;
}


文件下载:

header("Content-Type: application/force-download");//强制下载
header("Content-Disposition: attachment; filename=ins.jpg"); //给下载的内容指定一个名字
readfile("imgs/test_Zoom.jpg");//把下载的内容读进文件中


© 著作权归作者所有

wsy5344
粉丝 14
博文 21
码字总数 16215
作品 0
武汉
程序员
私信 提问
PHP 核心知识要点

Php:脚本语言,网站建设,服务器端运行 PHP定义:一种服务器端的 HTML 脚本/编程语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态...

-波仔-
2016/09/24
37
0
PHP模块化编程实践 基于layui前端模板的博客网站搭建

第一步:在layui官网下载官方模板经典模块化前端UI 第二步:完成注册登录操作 新建一个php文件,复制网上已有的MySQL数据库类:完整的PHP MySQL数据库类 将下载的html文件重命名为php文件,在...

丁功春
2018/07/18
0
0
Laravel-01-请求和响应对象理解分析

在Laravel里,主要是对请求和响应做了对象化处理,所以要充分理解对象化编程的理念。 获取请求对象 从这里开始要讲Http的请求和响应,要先对http协议进行充分的预习和了解。 在Laravel里,主...

Corwien
2016/03/04
23
0
PHP会话(Session)使用入门(来自深空老大)

对比起 Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用。 由于 Session 是以文本文件形式存储在服务器端的,所以不怕...

岭南六少
2011/07/21
0
0
PHP页面访问控制问题

我构想一种方法,使用在某用户是否可以访问指定页面。 首先在你的 user表中加一个字段,如hid 默认是1 , 这个字段是代表你的网页的字段, 在登陆成功后,从session 或cookie中取得usernamne...

错II过
2014/03/21
469
6

没有更多内容

加载失败,请刷新页面

加载更多

将博客搬至CSDN

https://blog.csdn.net/qq_38157006

Marhal
18分钟前
1
0
unicode Java中求字符串长度length()和codePointCount()的区别

在计算字符串长度时,Java的两种方法length()和codePointCount()一度让我困惑,运行书上例子得到的长度值是相等的,那为什么要设定两个方法呢? 对于普通字符串,这两种方法得到的值是一样的...

泉天下
18分钟前
2
0
uin-app 一、学习理由

选择uni-app 理由 别人的理由 1. 5+ 有HTML5+和Native.js技术,HTML5+包含常用的跨平台的几百个API,能满足常规开发需求,而Native.js把40w原生api映 射成js对象,这样js可以直接调原生。HTM...

轻轻的往前走
20分钟前
1
0
方括号及其在命令行中的不同用法介绍

通配 方括号最简单的用法就是通配。你可能在知道“ Globbing”这个概念之前就已经通过通配来匹配内容了,列出具有相同特征的多个文件就是一个很常见的场景,例如列出所有 JPEG 文件: ls *.j...

Linux就该这么学
26分钟前
2
0
vecty 基础

gopherjs 是把 go 编译为 js 的工具。 vecty 是基于 gopherjs 的一种类似 React 的开发框架。 安装 gopherjs 和 vecty go get -u github.com/gopherjs/gopherjsgo get -u github.com/gopher......

electricface
27分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部