十二、PHP与表单进行交互
1、数据提交方式get | post;
Get:提交的数据会附在url之后,提交的数据偏小,安全性不高;
Post:不会附在url之后,提交的数据比较大,安全性强于get;
2、咋样获取数据 $_GET | $_POST;
(1)这两种都是数组类型的数据;
(2)empty($_GET|$_POST):用来检测数据是否为空,如果为空,返回true,否则返回false;
3、编码:
(1)分类:url编码与base64编码;
(2)作用:为了更好的传输数据,保证数据传输的准确性;
(3)urlencode(),base64_encode()这两个是编码;urldencode(),base64_decode解码;
十三、内置函数:
(一)、字符串函数:
1、字符串定义:方式一、用单引号 单引号里的变量不会被解析;
方式二、用双引号 双引号里的变量会被解析;
方式三、herehdoc
方式四、nowdoc
2、字符串的处理:
查看字符串的个数
strlen(字符串) 返回字符的字节数;
mb_strlen(字符串,编码【可选,按照字符个数】) 返回字符的个数;
mb_strlen(字符串)返回字符的个数或字节数;
截取字符串
substr(字符串,下标,数目)从一个字符串中截取一段(按字符字节数来截取);
mb_substr(字符串,下标,数目,编码)从一个字符串中截取一段(按字符个数来截取);
strstr|strchr(字符串,‘子串 ’)查找字符首次出现的位置到末尾的字符;
strrchr(字符串,‘子串 ’)查找字符最后一次出现的位置到末尾的字符;
数组与字符串之间的转化
implode(数组)把数组变成一个字符串;
implode(‘|’,数组)把数组变成一个字符串,并用|隔开;
explode(‘ ,’,字符串) 把字符串分割成数组,并把双引号用逗号开;
字符串大小写的转化
strtoupper()将字符串转化为大写;
strtolower()将字符串转化为小写;
ucfirst()将字符串的首字母转化为大写;
ucwords()将字符串的每个首字母转化为大写;
去除空格
trim()将字符串两边的空格去除;
ltrim()将字符串左边的空格去除;
rtrim()将字符串右边的空格去除;
转化字符串
htmlentities()将字符串转化为html实体;
htmlspecialchars()将特定的字符转为html实体 特定字符( ‘ ’ “” &);
addcslashes(字符串,值)在指定的字符前加反斜杠(加反斜杠就是转义);
addslashes()在特定的字符前加反斜杠(“” ‘ ’ \) ;
ord()返回字符ascii值;
strip_tags()去除html或php标记;
查找子串出现的次数及位置
substr_count(字符串,被查找的子串) 查找子串在字符串出现的次数;
strpos(字符串,被查找的子串,偏移) 定位子串在字符串中的位置;
填充字符串
str_pad(字符串,填充后的长度,所填的内容,【可选,默认是往后填充或用STR_PAD_RIGHT,也可向左填充STR_PAD_LEFT】) 用指定的字符去填充字符串;
字符串的格式化
fprintf(资源流,格式化字符串,字符串) 把格式化的字符串写入到资源中;
number_format(字符串) 对数据字符串进行格式化;
字符串的替换
str_ireplace(旧的子串(可以是数组类型,使其多个子串被替换),新的子串(可以是数组类型,用多个去替换),字符串) 在字符串中查找匹配的子串,然后进行替换,不区分大小写;
str_replace(旧的子串(可以是数组类型,使其多个子串被替换),新的子串(可以是数组类型,用多个去替换),字符串) 在字符串中查找匹配的子串,然后进行替换,区分大小写;
substr_replace(字符串,新的子串,下标,【可选,指的是长度】)在字符串中查找一段子串,然后用其它的字符进行替换;
解析字符串
parse_url()解析一个url地址,返回一个数组;
parse_str(变量)解析一个查询字符,把键作为变量;
parse_str(变量,数组)解析一个查询字符到数组中;
http_build_query()生成urlencode之后地请求字符串;
用到正则函数的字符串内置函数:
Preg_match(正则,字符串,数组【可选,用数组来装】)用正则查出匹配的数据;
preg_match_all(正则,字符串,数组【可选,用数组来装】) 用正则查出所有匹配的数据;
preg_replace(正则,‘新的值’,内容)用正则查出匹配的数据,然后进行替换;
preg_split(正则,内容)用正则查出匹配的数据,然后进行分割 返回一个数组;
哈希函数(散列函数):
加密函数
md5()把字符串加工成一个32位字符串;
sha1()把字符串加工成一个40位字符串;
hash_hmac(算法(md5),字符串,设置密钥)用一个密钥对字符进行加密(对字符串进行撒盐);
3、xss(跨站脚本攻击)
概念:恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的;
一般我们会用到htmlentities()和htmlspecialchars()函数去是设置,避免恶意攻击;
4、sql注入
概念: 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令;
一般我们会用到addcslashes()和addslashes()函数去是设置,避免恶意攻击;
(二)、数组函数
1、定义:方法一、$data=array(x,y,z);
方法二、arr[]=x;
arr[]=y;
arr[]=z;
方法三、$data=[x,y,z] 低版本不支持;
注意:数组每个元素由键与值组成;
键:数值键和关联建;
2、数组处理
print_r()打印数组结构;
查找元素
in_array(‘查找的元素’,数组)检测数组中是否存在某个值,存在的话返回true,否则返回false;
is_array(数组) 判断是否是一个数组 如果是的话 返回true 否则返回一个flase;
array_key_exists(‘键’,数组)检测指定的键是否在数组中,存在的话返回true,否则返回false;
生成新数组
array_values()返回由数组的值组成的数组;
array_keys()返回由数组的键组成的数组;
foreach(字符串 as 键=>别名){} 遍历的数组;
指针相关
key()取当前指针所在的键;
current()取出指针所在的值;
each()取出指针所在的键和值 (数组下标为0是键,下标为1是值,并把指针移到后一个元素上);
end()把当前指针移到末尾;
reset()把当前指针移到头部;
next()把当前指针移到后一个元素上;
prev()把当前指针移到前一个元素上;
队栈相关
array_push()把数据压入数组的尾部;
array_pop()删除数组的尾部;
array_unshift()压入头部;
array_shift()删除头部;
array_pad(数组,长度,填充值)用值将数组填充到指定的长度;
count(数组,可选【COUNT_RECURSIVE】)计算数组元素的个数;
array_unique(数组) 移除数组中的重复的值;
排序相关的
sort()对数组排序从低到高;
rsort()对数组排序从高到低;
ksort()按键的升序排序;
krsort()按键的降序排序;
asort()对数组进行由低到高排序 不改变索引;
arsort()对数组进行有高到低排序,不改变索引;
shullfe()将数组元素打乱;
合并拆分
array_combine()创建一个新数组,用一个数组的值作为其键名,另一个数组的值作为其值;
array_merge()将多个数组合并在一起;
array_slice(数组,下标,数目)从数组中提取元素;
array_splice(数组,下标,数目,新的值) 从数组中删除元素,然后进行替换;
range(起始,末尾,步长)产生一个范围的数组;
array_sum()数组求和;
array_chunk(数组,2)将一个数组分割成一个二维数组;
函数交差集
array_filter(数组,function(值,键),ARRAY_FILTER_USE_BOTH【可选,达到过滤出值和键】)用函数过滤数组的元素;
array_map(function(){},数组) 为数组的每一个元素进行加工;
array_intersect(数组1,数组2) 求两个数组的交集;
array_diff()按值来计算两个数组的差集;
array_diff_key()按键来计算两个数组的差集;
array_diff_assoc()按值和键来计算两个数组的差集;
(三)、日期函数处理
date_default_timezone_set(PRC) 设置时区
date_default_timezone_get()获取时区
Time() 获取一个1970年到现在的时间戳
Date(‘Y-m-d H:i:s’,time())格式化时间戳
Strtotime() 把一个日期时间字符串转换为时间戳
待续....
以上就是个人整理出来的PHP基础,供大家参考和学习。
领取专属 10元无门槛券
私享最新 技术干货