熟悉php的编码和解码函数,自编php代码运行如下函数:
- ASCII: ord()和chr()
- ord(string) 将字符转为ascii码
- chr(number) 将ascii转为字符
- URL:urlencode()和 urldecode()
- urlencode(string)编码 URL 字符串
- 返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,
- 空格则编码为加号(+)。
- 此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。
- urldecode()解码已编码的 URL 字符串
- Warning:
超全局变量 GET和 _REQUEST 已经被解码了。对 GET或 _REQUEST 里的元素使用 urldecode() 将会导致不可预计和危险的结果
- Warning:
- urlencode(string)编码 URL 字符串
Base64: base64_encode()和base64_decode()
- base64_encode(string)
- 使用 base64 对 data 进行编码。
- 设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。Base64-encoded 数据要比原始数据多占用 33% 左右的空间。
- base64编码可参考base64
- base64_decode(string)
- 对使用 MIME base64 编码的数据进行解码
- base64_encode(string)
HTML实体:htmlspecialchars()和htmlspecialchars_decode()
- htmlspecialchars(string)
- 转义特别的字符为HTML实体;
- 如’<hr>’ 则会直接输出‘<hr>’,而不是水平线
- htmlspecialchars_decode(string)
- 把 HTML 实体转换为字符
- htmlspecialchars(string)
- str_replace(find,replace,string,count)
- 函数以其他字符替换字符串中的一些字符(区分大小写)
- 该函数必须遵循下列规则
</li>
<li>如果搜索的字符串是数组,那么它将返回数组。</li>
<li>如果搜索的字符串是数组,那么它将对数组中的每个元素进行查找和替换。</li>
<li>如果同时需要对数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余元素将用空字符串进行替换</li>
<li>如果查找的是数组,而替换的是字符串,那么替代字符串将对所有查找到的值起作用。
- md5(string,raw)
- 计算字符串的 MD5 散列
- 使用 RSA 数据安全,包括 MD5 报文摘要算法
- 来自 RFC 1321 的解释 - MD5 报文摘要算法:MD5 报文摘要算法将任意长度的信息作为输入值,并将其换算成一个 128 位长度的”指纹信息”或”报文摘要”值来代表这个输入值,并以换算后的值作为结果。
- MD5 算法主要是为数字签名应用程序而设计的;在这个数字签名应用程序中,较大的文件将在加密(这里的加密过程是通过在一个密码系统下[如:RSA]的公开密钥下设置私有密钥而完成的)之前以一种安全的方式进行压缩
- 计算文件的 MD5 散列,使用 md5_file(file,raw) 函数
- ASCII: ord()和chr()
PHP超全局变量(PHP对大小写敏感)
- PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
- $GLOBALS
- 用于在php脚本中de任意位置访问全局变量(函数中也可).php在$GLOBALS[index]的数组中存储了所有的全局变量,数组的key就是变量的名字
- instance:
<?php
$x=9;
$y=10;
function addition()
{
return $GLOBALS['z']=$GLOBALS['x']+$GLOBALS['y'];
}
addition();
echo $z;
?>
$_SERVER
- 保存关于报头、路径和脚本位置的信息
- 能够在 $_SERVER 中访问的最重要的元素
元素/代码 描述 $_SERVER[‘PHP_SELF’] 返回当前执行脚本的文件名。 $_SERVER[‘GATEWAY_INTERFACE’] 返回服务器使用的 CGI 规范的版本。 $_SERVER[‘SERVER_ADDR’] 返回当前运行脚本所在的服务器的 IP 地址。 $_SERVER[‘SERVER_NAME’] 返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。 $_SERVER[‘SERVER_SOFTWARE’] 返回服务器标识字符串(比如 Apache/2.2.24)。 $_SERVER[‘SERVER_PROTOCOL’] 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。 $_SERVER[‘REQUEST_METHOD’] 返回访问页面使用的请求方法(例如 POST)。 $_SERVER[‘REQUEST_TIME’] 返回请求开始时的时间戳(例如 1577687494)。 $_SERVER[‘QUERY_STRING’] 返回查询字符串,如果是通过查询字符串访问此页面。 $_SERVER[‘HTTP_ACCEPT’] 返回来自当前请求的请求头。 $_SERVER[‘HTTP_ACCEPT_CHARSET’] 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1) $_SERVER[‘HTTP_HOST’] 返回来自当前请求的 Host 头。 $_SERVER[‘HTTP_REFERER’] 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。 $_SERVER[‘HTTPS’] 是否通过安全 HTTP 协议查询脚本。 $_SERVER[‘REMOTE_ADDR’] 返回浏览当前页面的用户的 IP 地址。 $_SERVER[‘REMOTE_HOST’] 返回浏览当前页面的用户的主机名。 $_SERVER[‘REMOTE_PORT’] 返回用户机器上连接到 Web 服务器所使用的端口号。 $_SERVER[‘SCRIPT_FILENAME’] 返回当前执行脚本的绝对路径。 $_SERVER[‘SERVER_ADMIN’] 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。 $_SERVER[‘SERVER_PORT’] Web 服务器使用的端口。默认值为 “80”。 $_SERVER[‘SERVER_SIGNATURE’] 返回服务器版本和虚拟主机名。 $_SERVER[‘PATH_TRANSLATED’] 当前脚本所在文件系统(非文档根目录)的基本路径。 $_SERVER[‘SCRIPT_NAME’] 返回当前脚本的路径。 $_SERVER[‘SCRIPT_URI’] 返回当前页面的 URI。 - instance:
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?>
$_REQUEST
- 用于收集 HTML 表单提交的数据
- 以表单为例,在用户点击提交时,表单数据将发送到中action属性指定的脚本中.我们可使用$_REQUEST[INDEX]收集指定字段的数据
- instance:
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
$_POST
- 广泛用于收集提交 method=”post” 的 HTML 表单后的表单数据。$_POST 也常用于传递变量
- instance:
<body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
- $_GET
- 用于收集提交 HTML 表单 (method=”get”) 之后的表单数据。
- $_GET 也可以收集 URL 中的发送的数据。
$_FILES
- 存储文件的相关信息
- 和及相关函数配合使用用来上传各种文件
$_ENV
- 是一个包含服务器端环境变量的数组
$_SERVER['PATH']:环境变量 PATH 路径。 $_SERVER['CLASSPATH']:系统 CLASSPATH 路径。 $_SERVER['LIB']:系统 LIB 库路径。 $_SERVER['INCLUDE']:系统 Include 路径,注意与 PHP 的包含路径是不一样的。 $_SERVER['OS']:操作系统类型。 $_SERVER['LANG']:系统语言,如 en_US 或 zh_CN。 $_SERVER['PWD']:当前工作目录。 $_SERVER['TEMP']:系统 TEMP 路径。 $_SERVER['AP_PARENT_PID']:当前进程 ID 号。 $_SERVER['NUMBER_OF_PROCESSORS']:系统 CPU 数目。
- 是一个包含服务器端环境变量的数组
- $_COOKIE
- 储存cookie的信息,可通过$_COOKIE[‘name’]读取
- setcookie()可以设置cookie
- $_SESSION
- 用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。
- 会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。
- Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。
- 在您把用户信息存储到 PHP session 中之前,首先必须启动会话(在标签之前)
- 存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量
- 删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。
任务
初级
1、测验
完成http://www.w3school.com.cn/quiz/quiz.asp?quiz=php测验;
2、学习编码相关函数
熟悉php的编码和解码函数,自编php代码运行如下函数:
ASCII: ord()和chr()
URL:urlencode()和 urldecode()
Base64: ase64_encode()和base64_decode()
HTML实体:htmlspecialchars()和htmlspecialchars_decode()
其他:str_replace()、md5()等
3、学习并进行练习
1)练习并运行http://www.phpxs.com/post/4427/,的四组代码;
2)了解php序列化的意义和方法。
高级
1、环境搭建
在phpstudy中搭建WordPress个人博客。下载地址 https://cn.wordpress.org/ ;
2、学习PHP的mysql 参数绑定
1)掌握参数绑定的方法以及进行参数绑定的原因;
2)实验:将课程中学习的teacher数据表,绑定id和addr;进行查询工作,自行编写运行代码。