会话技术
cookie技术
cookie是由web服务器保存在用户浏览器上的小文本文件(http歇息的响应头设置),它可以包含有关用户的信息,无论合适用户何时连接到服务器,web站点都可以访问cookie信息,只能存简单数据,数值/字符串
原理
PHP通过setcookie()函数将数据通过http协议响应头传输给浏览器,浏览器再第一次响应的时候将cookie数据保存到浏览器,php执行的时候会自动检测是否存在cookie数据,如果存在则将请求头中的数据携带到服务器,并且自动保存到$_COOKIE中
能够实现跨脚本共享数据
session技术
session是将数据存储到服务端,无论合适用户访问服务器,web站点都可以访问session,以来与cookie技术
cookie技术的基本使用
setcookie(名字,值); //值必须是简单类型中的整数或者字符串
$_COOKIE // 获取cookie
cookie生命周期
cookie在浏览器的生存时间(浏览器在下次访问服务器时是否携带对应的cookie)
默认不设定(生命周期):默认关闭浏览器
同过setcookie的第三个参数来限定生命周期,使用时间戳来管理的
setcookie('a','1'); //普通cookie,关闭浏览器失效
setcookie('a','1',7*24*60*60); //格林威治时间7天过期
setcookie('a','1',time() + 7*24*60*60); //格林威治时间从现在开始7天后过期
setcookie('a','') //清空cookie
设定“/”的含义:告知浏览器当前cookie的作用范围是网站根目录
setcookie(名字,值,生命周期,作用域范围); //通常用“/”
session 技术
session基本使用
启用session,session_start();任何时候都需要开启session(脚本使用到$_SESSION就开启一次);
$_SESSION是通过session_start()函数的调用才会定义的,没有直接定义
设置session信息
如果相关存储数据到session中,那么只要不断给$_SESSION数组添加元素即可
读取session信息
$_SESSION是一个数组,按照数组的方式访问即可,开启后可以跨脚本使用
删除session
就是将session数据清理掉,让$_SESSION拿不到
unset($_SESSION [元素下标]),删除指定session数据;
删除全部session
就是将$_SESSION变成一个空数组 $_SESSION=array();
GD图像处理
API:外部提供的应用接口;它已经准备号了一套处理某=某些功能的机制,用户只需要按照只指定的数据要求,抵用指定的函数或者方法就可以实现某个功能
GD的概念:图像处理扩展(外部提供的API),实现图像制作功能
GD的引入:GD库是外部提供的api,已经被继承到PHP扩展库中(不需要下载),但需要在配置文件中打开对应的扩展
更改以后要重启服务器
创建画布
imageCreate(宽,高):创建一个空白画布(背景色是白色的)
imageCreateTrueColor():创建一个彩色画布(背景是黑色的,需要填充)
imageCreatefromJpeg(图片路径):打开一个jpeg的图片资源
imageCreatefromGif(图片路径):打开一个gif的图片资源(php无法实现动态)
imageCreatefromPng(图片路径):打开png格式图片资源
操作画布资源
所有的画布资源操作都需要指定画布,都是第一个参数
分配颜色:imageColorAllocate(画布资源,红,绿,蓝);更具rgb三色组给指定画布分配一组颜色,返回一个颜色句柄(一组整数),每一个色组都是从0-225,在真彩图片资源中,所有分配的颜色都不会自动给图片资源上色,使用来后续操作图片资源的时候,指定着色的
填充区域:imagefill(画布资源,起始x坐标,起始y坐标y坐标从上往下,颜色句柄);指定位置开始填充指定资源,从指定点开始自动匹配相邻点,如果颜色一致自动渲染,扩展至全图
画直线:imageline(图片资源,起始点x,起始点y,终点x,中点y,颜色);制作一条直线
画矩形:imagerectangle(图片资源,起始位置,终止位置);制作一个矩形
画圆弧 :imagearc(图像资源,起点x,起点y,轴宽,轴高,弧度起点,弧度中点,颜色);
在画布上写字:imagestring(),imagettftext();
imagestring(图片资源,文字大小,起始x,起始y,内容,颜色):用来书写英文
imagettfttext(图片资源,文字大小,旋转角度,起始x,起始y,颜色,字体,内容):书写任意内容
字体需要指定字体的路径
输出画布资源
输出图片文件:以图片文件形式保存到本地文件夹
输出为网页文件:将图片展示给html(给用户)
image+图片格式 imagejpeg()imagepng()/imagegif()
如果图片只是提供图资源,没有指定保存位置,那么系统认为是输出给浏览器(记得设置响应头
header('Content-type:image/png');)
如果指定了位置,那么系统认为是保存到本地
图片输出之前不能输出其他内容
销毁画布
从内存中将画布资源清理掉
imagedestory();
案例
<?php
//设置响应头
header('Content-type:image/png');
//创建一个真彩图片
// $img = imagecreatetruecolor(100,100);
// var_dump($img);
//创建画布
$img = imagecreatetruecolor(100,100); //在计算机里,黑色为无色
//分配颜色
$color = imagecolorallocate($img,210,4,42);
//填充背景色
imagefill($img,0,0,$color);
//制作直线
$line_color = imagecolorallocate($img,01,3,4);
imageline($img,10,10,90,90,$line_color);
//制作矩形
$rec_color = imagecolorallocate($img,0,130,125);
imagerectangle($img,10,10,90,90,$rec_color);
//制作圆弧(圆)
$arc_color = imagecolorallocate($img,0,0,0);
imagearc($img,50,50,80,80,180,360,$arc_color);
//写入英文字符串
$str_color = imagecolorallocate($img,100,50,100);
imagestring($img,5,20,20,'abcd',$trc_color);
//写入中文汉字
// imagettftext($img,30,45,50,50,$sctr_color,'字体文件','你好,世界')
//保存输出
imagepng($img,'my.png'); //保存文件资源
imagepng($img); //输出文件资源
//销毁画布
imagedestroy($img);
?>