在我们的日常生活中,登录一个网站上面会有你上次登录中断时留下的信息,购物车上也会看到你在不同页面看到的商品,这些都是网站用来辨认使用者的一种手段,为了能够方便的给使用者进行推送内容。想要实现这样复杂的功能就需要通过cookie,那么我们就来了解一下什么是Cookie。它有哪些用途以及怎样去创建、读取和删除。
什么是Cookie
通过cookie就可以实现很多功能,那么什么是cookie?cookie是在HTTP协议下,将服务器传递给浏览器的少量数据保存在用户浏览器的一种方式。比如它可以保存一些用户的信息,这样的话即使浏览器关闭或者连接中断的情况,用户仍然可以维护这些数据。
也可以理解为,cookie就是将浏览器网页的特定信息以文件的形式保存在客户端硬盘中,当你再次访问这个网站的时候,浏览器就会先读取这个cookie文件,读取到的数据就提供给浏览器。这样的话就实现了类似用户的网页有一些个性化的设置,再次打开会保存下来这样的效果。这就是通过cookie将它们展示出来。
Cookie
的主要用途
cookie的用途有很多,cookie中的信息有很多种,服务器就可以利用cookie包含信息的这用任意性来进行筛选信息并且维护信息,这样做的目的是为了判断HTTP传输中的状态。cookie最典型的应用我们日常中也是很常见的,就是去判断一个注册的用户是否已经登陆了网站,还有就是商城中类似购物车中的功能。
下面跟大家总结一下cookie常用于以下三个方面:
记录用户的一些信息;类似于上文中说到的用户个性化设置。
在页面之间传递数据;也就是一个页面的数据要在另一个页面使用时。
将查看的Web网页储存在cookie临时文件中,可以加快网页的访问速度。
其中我们需要注意到的是,一般不建议使用cookie来保存数据集或者较大的数据,同时并不是所有的浏览器都会支持cookie,并且数据信息都是按着文本的形式保存的,为了不影响网站的安全性,最好不要有敏感未加密的数据保存。
创建cookie
在PHP中创建cookie的话需要setcookie()
函数,创建cookie中我们需要注意的是,cookie是HTTP响应头部的组成部分,响应头部它必须最先输出。若是setcookie()函数前输出一个HTML或者空行、echo什么的都可能会导致程序出错。
setcookie()
函数的语法格式如下:
setcookie(string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]])
其中我们需要注意的是:
$name
---表示设置 Cookie 的名称;$value
---是可选参数,可以用来设置 Cookie 的值;$expire
---是可选参数,用来设置 Cookie 的过期时间,这个时间是 Unix 时间戳的形式。cookie有些是临时的有些是持续的,临时的在浏览器上会存在一定的时间,一旦超过规定的时间该cookie就会被系统清除。$path
---可选参数,用来设置 Cookie 有效的服务器路径。$domain
---可选参数,用来设置 Cookie 的有效域名/子域名。$secure
---可选参数,用来设置这个 Cookie 是否仅仅通过安全的 HTTPS 连接传给客户端。
接下来通过示例看一下创建cookie:
<?php setcookie('Website', '好好学习'); setcookie('Title', 'Cookie', time()+3600); // 设置 Cookie 1 小时后过期 echo '<pre>'; print_r($_COOKIE); ?>
输出结果:
在运行时我们需要注意的是:当第一次运行这个脚本文件时并不会有任何输出信息,因此设置完 Cookie 后需要刷新一下页面,这样在下次请求时 HTTP 头部才会携带上一次设置的 Cookie 信息,这时才能读取到 Cookie。
读取cookie
在PHP中,想要读取cookie就需要使用超级全局变量$_COOKIE
,$_COOKIE
是一个储存着所有信息的数组,它的语法格式如下:
$_COOKIE['Cookie 名称']
实例如下:
<?php setcookie('Website', '好好学习'); setcookie('Title', 'Cookie', time()+3600); // 设置 Cookie 1 小时后过期 echo '<pre>'; print_r($_COOKIE); echo 'Website 的值为:'.$_COOKIE['Website'].'<br>'; echo 'Title 的值为:'.$_COOKIE['Title']; ?>
输出结果:
由此我们边通过$_COOKIE 读取到了cookie的值。
删除cookie
我们在上文中说,可以给临时的cookie设置一个时间,当时间过了之后,系统会自动删除这个cookie,那能不能够当 Cookie 被创建后,没有设置它的失效时间,其 Cookie 文件会在关闭浏览器时被自动删除。如果要在关闭浏览器之前删除 Cookie 文件,同样需要使用 setcookie()
函数。
删除 Cookie 和创建 Cookie 的方式基本类似,只需要使用 setcookie() 函数将 Cookie 的值(也就是第二个参数)设置为空,或者将 Cookie 的过期时间(也就是第三个参数)设置为小于系统的当前时间即可。
实例如下:
<?php setcookie('Website',''); setcookie('Title','Cookie',time()-1); echo '<pre>'; print_r($_COOKIE); ?>
输出结果:
如此我们便完成了删除cookie的值。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
以上就是PHP中怎样完成Cookie的创建、读取和删除?的详细内容,更多请关注自由互联其它相关文章!