朗读

php核心编程学习笔记(1)

文章目录[x]
  1. 1:设置cookie
  2. 2:读取cookie及其删除
  3. 3:session的开启以及相关操作
  4. 4:session的垃圾回收机制
  5. 5:php操作http响应头
  6. 6:Curl函数

cookie会话技术、session技术的原理与使用。php操作http响应头、curl函数、


设置cookie

什么是cookie--服务器端能够标识用户的数据的唯一标识,在之后请求的的时候都会自动携带给服务器。

语法:

setcookie(name,value【,expire【,path【,domain【,secure【,httponly】】】】】);

说明:

中括号包含的属性可以省略。

  • name 就是cookie名
  • value 就是cookie值
  • expire是用于设置cookie的过期时间,时间是以秒记录的,有效期的起点是时间原点。

如果省略表示会话cookie,有效期到浏览器关闭。

  • path是cookie的路径

默认当客户端访问某一个php文件时,究竟什么样的cookie会被携带给服务器,其中cookie的显示路径就可以决定是否携带给所请求的php文件。

如果客户端的cookie的显示路径是所请求的php文件路径的父路径则会携带过去,但是绝大多数情况我们是将一个cookie设置为整站有效。

示例:

  • cookie的域

首先理解域名-->(顶级域名,一级域名,二级域名)

cookie所实现的跨域也是只能二级域名相同

  • secure 取值为true或false

如果设置为true,那么只要当客户端使用的协议是https时,则会将cookie携带给服务器端。

https  = http + ssl

  • httponly 取值为true或false

如果设置为true,那么只能由php访问cookie,js就不能访问了

位于客户端的cookie的本质就是文本文件。首次请求的时候用为没有cookie,所以没有携带cookie。


读取cookie及其删除

$_COOKIE 就是一个关联数组,主要是用于存储客户端通过cookie的技术,提交的数据。

删除的话有两种方式,一种是到过期时间自己删除,一种是你将内容定义为空('')。

cookie的值类型只能是字符,不能是数组,但是可以用变通的方式类似储存数组。


session的开启以及相关操作

语法:

session_start();  ==>必须写,如果在php.ini中开启了自动开启,就可以省略

说明:

用于开启session机制。同时激活$_SESSION预定义变量

 

首次:

请求时,服务器首先在硬盘中创建一个唯一的文件,将文件名以cookie的形式返回客户端。

在php脚本执行结束时,将$_SESSION内存变量中的数据写入到session文件中。

 

其后各次:

请求时,服务器会收到客户端的cookie中保存的session文件名,同时会在服务器端硬盘中找到对应的session文件。

会打开这个session文件,将文件中的数据读取到$_SESSION变量中。

脚本执行结束时,会再将$_SESSION中的保存的数据写回session文件中。

 

session_id();用于获取sessionID的值

session可以存储任何类型的数据。但是$_SESSION变量本身的下标必须是字符串。

session的垃圾回收机制


session文件也可以设置一个有效期。默认的设置如下图:

php会认为过期的session是一个垃圾文件。所以需要删除,删除这样的过期的session文件有一个一机制,这个机制就是垃圾回收机制。

php操作http响应头

默认HTTP协议的响应头是由web服务器自动组织,PHP为了我们提供了一个设置HTTP响应的协议头的函数header

①、设置浏览器的显示编码

语法:

header('Content-type:text/html;charset=utf8');

说明:

content-type: 用于设置响应的数据的格式

charset 用于设置响应的数据中数据的编码

②、用于进行跳转

语法:

header('Location:url');

说明:

url 所要跳转的网址

也可以实现点击内容直接下载(a连接请求页面)

Curl函数


Command Url

Curl是一个代码版的浏览器。允许我们在代码中像使用浏览器一样访问别人的页面。

默认php并没有开启对Curl的支持,需要我们要配置文件中手动的开启

提示:

如果开启后也无法使用,需要将php目录中的三个文件libeay32.dll、libssh2.dll、ssleay32.dll、php5ts.dll,文件复制到apache的bin目录内。

使用示例:

当然也可以模拟get或者post请求。

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像

Title - Artist
0:00