PHP基础(二)

十二、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基础,供大家参考和学习。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190202G08GJK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券