1. PHP处理脚本解析(脚本不乱码)
header('Conent-type:text/html;charset=utf-8');
2. 常用的系统函数
2.1 有关输出的函数:print和print_r
print()==类似于echo输出提供的内容,本质是一种结构(不是函数),返回1,可以不需要使用括号;
print_r()==类似于var_dump,但是比var_dump简单,不会输出数据的类型,只会输出值(数组打印使用比较多)

2.2 有关时间的函数
date()格式化时间
按照指定格式对对应的时间戳(从1970年格林威治时间开始计算的秒数)转换成指定的格式,如果没有指定特定的时间戳,那么就是默认解释当前时间戳
// 当前系统时间
echo date('Y-m-d H:i:s');
// 第2个参数是指定时间戳,表示指定时间戳的时间
echo date('Y-m-d H:i:s',5689562323);
time()当前时间的时间戳
$curWeek= date('Y-m-d H:i:s');
echo '当前日期:'.$curWeek;
$nextWeek=date('Y-m-d H:i:s',time()+7*24*60*60);
echo '下周:'.$nextWeek;
microtime()获取微秒级别的时间
strtotime()按照规定格式的字符串(必须是英文的)转换成时间戳
$nextWeek=date('Y-m-d H:i:s',strtotime('tomorrow 10 hours'));
echo '明天10点:'.$nextWeek;

3. 有关数字的函数
max()==指定参数中最大的值
min()==比较两个数中较小的值
rand()==得到一个随机数,指定区间的随机整数
mt_rand()==与rand一样,只是底层结构不一样,效率比rand高(建议使用)
round()==四舍五入
ceil()==向上取整
floor()==向下取整
pow()==求指定数字的指定指数次结果:pow(2,8) == 2^8 == 256
abs()==绝对值
sqrt()==求平方根
4. 有关函数的函数
function_exists():判断指定的函数名字是否在内存中存在(帮助用户不去使用一个不存在的函数,让代码安全性更高)
func_get_arg():在自定义函数中去获取指定数值对应的参数
func_get_args():在自定义函数中获取所有的参数(数组)
func_num_args():获取当前自定义函数的参数数量
3. 数组常用操作
3.1 数组常用的函数
count():获取数组长度
array_push():往数组中加入一个元素(数组后面)
array_pop():从数组中取出一个元素(数组后面)
array_shift():从数组中取出一个元素(数组前面)
array_unshift():从数组中加入一个元素(数组前面)
array_reverse():数组元素反过来
in_array():判断一个元素在数组中是否存在
array_keys():获取一个数组的所有下标,返回一个索引数组
array_values():获取一个数组的所有值,返回一个索引数组
排序
数组中的元素能够以字母或数字进行升序或降序排序
sort()== 以升序对数组排序
rsort()== 以降序对数组排序
asort() 根据值,以升序对关联数组进行排序
ksort() ==根0据键,以升序对关联数组进行排序
arsort() ==根据值,以降序对关联数组进行排序
krsort() ==根据键,以降序对关联数组进行排序
shuffle() == 随机打乱数组元素,数组下标会重排
指针函数
reset():重置指针,将数组指针回到首位
end():重置指针,将数组指针指向最后一个元素
next():指针下移,取得下一个元素的值
prev():指针上移,取得上一个元素的值
current():获取当前指针对应的元素值
key():获取当前指针对应的下标值
注意事项:next和prev会移动指针,有可能导致指针移动到最前或者最后(离开数组),导致数组不能使用,通过next和prev不能回到真确的指针位置。只能通过end或者reset进行指针重置
3.2 数组遍历
3.2.1 foreach 遍历
语法:
foreach($数组变量 as [$下标 =>] $值){
//通过 $下标 访问元素的下标;通过 $值 访问元素的值
}
索引数组:可以直接访问,key就是数组的下标 (一维数组)
$info=array('Tom','Mary','Jack');
foreach($info as $key=>$val){
echo $key .'=' .$val; // 0=Tom 1=Mary 2=Jack
};
关联数组(一维数组)
$info=array('name'=>'Tom','age'=>10);
foreach($info as $key=>$val){
echo $key . '===' . $val; // name===Tom age===10
};
关联数组(二维数组)
$info=array(
array('name'=>'Tom','age'=>10),
array('name'=>'Mary','age'=>20),
array('name'=>'Jack','age'=>30)
);
foreach($info as $key=>$val){
echo 'name is '.$val['name']. 'and age is '. $val['age'] . '</br>';
};
// name is Tom and age is 10
// name is Mary and age is 20
// name is Jack and age is 30
3.2.2 for 遍历
// 索引数组
$cars = array("porsche", "BMW", "Volvo");
$arrlength = count($cars);
for ($x = 0; $x < $arrlength; $x++) {
echo $cars[$x];
echo "<br>";
}
4 常用字符串函数
4.1 strlen() 函数和mb_strlen函数
strlen() 函数:返回字符串的长度,以字节为单位
mb_strlen() 函数:直接返回字符串的长度
如果字符串都是英文,则 strlen() 函数和mb_strlen函数返回的字符串长度一样;
如果字符串是中英文,strlen() 函数是返回计算后(以字节为单位:中文在utf-8字符集下占用3字节)的长度;mb_strlen函数则是直接返回字符串长度
<?php
$str1='abc';
echo strlen($str1); // 输出:3
echo mb_strlen($str1); // 输出:3
$str2='你好abc';
echo strlen($str2); // 输出:9
echo mb_strlen($str2); // 输出:5
中文在utf-8字符集下占用3字节
4.2 str_word_count() 函数
对字符串中的单词进行计数
echo str_word_count("Hello world!"); // 输出 2
4.3 strrev() 函数:反转字符串
echo strrev("Hello world!"); // 输出 !dlrow olleH
4.4 查找函数:strpos(), strrpos()
strpos(字符串,匹配字符):判断字符在目标字符串中出现的位置(首次)
strrpos(字符串,匹配字符):判断字符在目标字符串中最后出现的位置
- 如果找到匹配,则会返回首个匹配的字符位置(从0开始)。如果未找到匹配,则将返回 FALSE
echo strpos("Hello world!","world"); //返回结果 6
4.5 替换函数: str_replace()
str_replace(匹配目标,替换的内容,字符串本身):将目标字符串中部分字符串进行替换
// 下面的例子用 "Kitty" 替换文本 "world":
echo str_replace("world", "Kitty", "Hello world!"); // 输出 Hello Kitty!
4.6 截取字符串 substr(), strstr()
substr(字符串,起始位置从0开始[,长度]):指定位置开始截取字符串,可以截取指定长度(不指定到最后)
strstr(字符串,匹配字符):从指定位置开始,截取到最后(可以用来去文件后缀名)
4.7 转换函数:implode(), explode(), str_split()
implode(连接方式,数组):将数组中的元素按照某个规则连接成一个字符串
$names=array('Sunny','Amy','Mark');
echo implode('=',$names); // Sunny=Amy=Mark
explode(分割字符,目标字符串):将字符串按照某个格式进行分割,变成数组
$names='Sunny=Amy=Mark';
print_r(explode('=',$names)); // Array ( [0] => Sunny [1] => Amy [2] => Mark )
str_split(字符串,字符长度):按照指定长度拆分字符串,得到数组
4.8 去除空格函数 trim(), ltrim(), rtrim()
trim(字符串[,指定字符]):本身默认是用来去除字符串两边的空格(中间不行);但是也可以指定要去除的内容,是按照指定的内容循环去除两边有的内容:直到碰到一个不是目标字符为止
ltrim():去除左边的
rtrim():去除右边的
4.9 大小转换函数:strtolower(), strtoupper(), ucfirst()
strtolower:全部小写
strtoupper:全部大写
ucfirst:首字母大写
4.10 格式化函数:printf(), sprintf()
printf/sprintf(输出字符串有占位符,顺序占位内容..):格式化输出数据