2021-10-26

PHP中怎样完成Cookie的创建、读取和删除?

在之前的文章中给大家带来了《五分钟带你了解PHP中的魔术方法(实例详解)》,其中详细给大家介绍了PHP中常用的魔术方法,本篇我们来看一下PHP中cookie的相关知识,希望对大家有帮助!

在我们的日常生活中,登录一个网站上面会有你上次登录中断时留下的信息,购物车上也会看到你在不同页面看到的商品,这些都是网站用来辨认使用者的一种手段,为了能够方便的给使用者进行推送内容。想要实现这样复杂的功能就需要通过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);
?>

输出结果:

1026.01.png

在运行时我们需要注意的是:当第一次运行这个脚本文件时并不会有任何输出信息,因此设置完 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'];
?>

输出结果:

1026.02.png

由此我们边通过$_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);
?>

输出结果:

1026.03.png

如此我们便完成了删除cookie的值。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上就是PHP中怎样完成Cookie的创建、读取和删除?的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:PHP cookie
  • https://www.php.cn/php-weizijiaocheng-483382.html

    发表回复

    Your email address will not be published. Required fields are marked *