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

(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");//把下载的内容读进文件中


你可能感兴趣的:(php session/完整判断是否https/对象与数组互转/文件下载)