数学函数
1.floor函数 :下取整
2.ceil函数: 上取整
$x = 2.7;
$y = 3.01;
echo floor($x);
echo ceil($y);
3.pow函数: echo pow(2,3) , '<br/><br/>';
4.sqrt函数:echo sqrt(4) , '<br/><br/>';
5.max:
6.min:
$x = 6;
$y = 3.2;
$z = 1;
echo max($x,$y,$z) , '<br/><br/>';
echo min($x,$y,$z) , '<br/><br/>';
7.mtrand(int $min,int $max)
echo rand() , '<br/><br/>';
echo mt_rand() , '<br/><br/>';
$chars = 'abcdefghijlmnopqrstuvwxyz789654321';
$len = strlen($chars);
for($i=0;$i<4;$i++){
$char .= substr($chars,mt_rand(0,$len-1),1);
}
echo $char;
8.round(float $val)四舍五入
$x = 7.238;
echo round($x) , '<br/><br/>';
echo round($x,2);
9.number_format(float $num)将以千位分隔符格式化数字
$x = 7896.827;
echo number_format($x) , '<br/><br/>'; 7,897
echo number_format($x,2) , '<br/><br/>'; 7,896.83
10.fmod(float $x, float $y)将返回出发的浮点数余数
echo fmod(7.8,3) , '<br/>';
echo 7.8 % 3 ; //整数余数的操作
字符串函数
01.获取字符串长度 int strlen(string $str)
$str1 = NULL;
$str2 = 'AB';
echo strlen($str1) , strlen($str2);
02.将字符串转小写 string strtolower(string $str)
03.将字符串转大写 string strtoupper(string $str)
04.将句子首字母转大写 string ucfirst(string $str)
05.将每个单词的首字母转大写 string ucwords(string $str)
$str1 = 'html';
$str2 = 'PHP';
echo strtoupper($str1) , strtolower($str2);
echo '<br/>';
$str3 = 'this is a test';
echo ucfirst($str3) , '<br/>' , ucwords($str3);
06.实现字符替换,区分大小写 mixed str_replace()
07.实现字符替换,不区分大小写 mixed str_ireplace()
$str = 'javascript';
echo str_ireplace('A', 'b', $str);
08_1.htmlspecialchars 预定义的字符串转换为HTML实体
(在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。)
$str = "A>B,B<C,Tom&John,He said:\"I'm OK\"";
echo htmlspecialchars($str, ENT_COMPAT); // 只转换双引号
echo '<hr/>';
echo htmlspecialchars($str, ENT_QUOTES); // 转换双引号和单引号
echo '<hr/>';
//通过str_replace进行转换
$str1 = str_replace('&', '&', $str); //必须是第一阶梯
$str2 = str_replace('>', '>', $str1);
$str2 = str_replace('<', '<', $str2);
$str2 = str_replace('"', '"', $str2);
$str2 = str_replace('\'', ''', $str2);
echo $str2;
08.trim删除字符串首尾空格或其它字符
$str = "\n\n\t\tABC\t\t";
echo trim($str);
09.strpos 返回一个字符在另一个字符第一次出现的位置
10.stripos返回一个字符在另一个字符第一次出现的位置(忽略大小写)****位置*****
$str1 = 'javascript';
$str2 = 'A';
var_dump(stripos($str1, $str2));
//字符串从0开始编号,如果没有出现,则返回FALSE。
11.strrpos 返回一个字符串在另一个字符串最后出现的位置
12.strripos返回一个字符串在另一个字符串最后出现的位置(忽略大小写)
13.substr 截取字符串 string substr(string $string,int $start,[int $length])
$str = 'javascript';
echo substr($str, 0,4) , '<br/><br/>';
echo substr($str, 4) , '<br/><br/>';
echo substr($str, -2) , '<br/><br/>'; 倒数
echo substr($str, -5,-1) , '<br/><br/>';倒数,长度:起点至结尾减去1
14.strstr 搜索一个字符串在另一个字符串中的第一次出现的位置
15.stristr 搜索一个字符串在另一个字符串中的第一次出现的位置(忽略大小写)
16.strrchr 搜索一个字符串在另一个字符串中的最后出现的位置,并***返回从该位置到字符串结尾的所有字符***
$str1 = 'abcdcef';
$str2 = 'c';
echo strrchr($str1, $str2);
$filename = 'a.bc.cd.png';
echo strrchr($filename, '.');
echo substr(strrchr($filename, '.'),1);
$str3 = strrev($filename); //gnp.dc.cb.a
$str4 = strstr($str3, '.'); //.dc.cb.a
echo strrev(substr($str3, 0,strlen($str3) - strlen($str4)));
17.strrev 反转字符串
$filename = 'ab.cd.gif.JpEg';
$num = strrpos($filename, '.');
echo $num;
echo strtolower(substr($filename, $num+1)) , '<br/><br/>';
$str2 = strrev($filename);
$num = strpos($str2, '.');
echo strtoupper(strrev(substr($str2, 0,$num)));
18.md5 实现计算字符串的md5哈希
$str = 'wang';
echo md5($str);
19.str_shuffle 随机打乱字符串
$str = 'abcdefghijklmnopqrstuvwxyz';
$str = str_shuffle($str);
echo substr($str,0,4);
20.explode 使用一个字符串分割另一个字符串,得到数组
21.implode 将一个一维数组的值转化为字符串
header('content-type:text/html;charset=utf-8');
$str = 'A|B|C|D';
$arr = explode('|', $str);
print_r($arr);
//数组
$arr2 = array('Tom','John','Rose');
$str2 = implode(',',$arr2);
echo $str2 , '<br/>';
22.sprintf 格式化字符串 %多余参数,必须使用占位符:1\$
$number = 5;
$str = 'shanghai';
$txt = sprintf('there are %d million cars in %s', $number, $str);
echo $txt, '<br/><br/>';
$number = 123;
$txt = sprintf("带有两位小数的结果是:%1\$.5f,<br/>不带小数的是:%1\$d", $number);
echo $txt;
参数含义:
%% 返回一个% %b 二进制数
%d 包含正负号的十进制 %e 小写科学计数法
%s 字符串 %f 浮点数 (本地设置)
实体名http://www.w3school.com.cn/html/html_entities.asp
时间和日期函数
1.date格式化一个本地时间/日期
2.date_default_timezone_set 设置默认时区
3.date_default_timezone_get 获取默认时区
4.支持时区列表 Asia/Hong_Kong Asia/Shanghai
5.通过配置文件修改时区 data.timezone
6.Unix时间戳或称Unix时间,POSIX时间是一种时间的表示方式,
定义为从格林时间1970年01月01日00时00分00秒起至现在的秒数
7.time 返回当前Unix时间戳
echo time() , '<br/><br/>';
echo '当前的日期时间是:' , date('Y-m-d H:i:s') , '<br/>';
echo '昨天的日期时间是:' , date('Y-m-d H:i:s',time()-86400) , '<br/>'; //24*60*60
8.strtotime 将字符串转换成Unix时间戳
echo '三个星期之前的时间戳是:' , strtotime('-3 weeks') , '<br/><br/>';
echo (time() - strtotime('-3 weeks'))/86400 , '<br/><br/>';
//获取上一个月的日期
echo date('Y-m-d H:i:s',strtotime('-1 month')) , '<br/>';
echo date('Y-m-d H:i:s',strtotime('first day of -1 month')) , '<br/>';
9.microtime 返回当期那Unix时间戳和微秒数
echo microtime() , '<br/>';
echo microtime(true) , '<br/>';//返回浮点数
$start = microtime(true);
$sum = 0;
for ($i=0; $i <1000000 ; $i++) {
$sum += $i;
}
$end = microtime(true);
echo '共花费' , round($end - $start,3) , '秒';
10.uniqid函数基于以微秒计的当前时间,生成一个唯一的 ID。
echo uniqid() , '<br/>';
echo uniqid('mooc') , '<br/>';
echo uniqid(microtime()) , '<br/>';
echo uniqid(microtime() . mt_rand()) , '<br/><br/>'; //mt_rand(100,999);
//uuid 8-4-4-4-12 = 32
echo md5(uniqid(microtime() . mt_rand())) , '<br/><br/>';
注释:由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数
11.getdate 获取日期/时间信息
print_r(getdate());
date_default_timezone_set('Asia/shanghai');
echo '当前日期:' , date('Y-m-d') , '<br/><br/>';
echo '下一个月的日期' , date('Y-m-d', strtotime('1 month')) , '<br/><br/>';
echo '上一个月的日期' , date('Y-m-d H:i:s',strtotime('last day of -1 month')) , '<br/><br/>';
echo '上一个月的日期' , date('Y-m-d H:i:s', strtotime("midnight last day of -1 month")) , '<br/><br/>';
echo '昨天' , date('Y-m-d H:i:s',strtotime('yesterday')) , '<br/><br/>';
echo '当前日期' , date('Y-m-d H:i:s',strtotime('now')) , '<br/><br/>';
yesterday 昨天午夜
midnight 午夜
today 午夜
noon 中午 12:00:00
tomorrow 明天午夜
first day of ?? 某月第一天
last day of ?? 某月最后一天
php数组
被包围在 <pre> 标签 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体
echo '<pre>';
$arr=range('1','5');
print_r($arr);
echo $arr[0],'<br/>';
echo $arr[1],'<br/>';
echo $arr[2],'<br/>';
//count()得到数组中元素的个数
echo count($arr),'<br/>';
$var=123;
echo count($var),'<br/>';
$var=null;
echo count($var),'<br/>';
// exit;
//for循环只能遍历下标连续的索引数组,下面的两个数组则无法遍历
for($i=0,$count=count($arr)-1;$i<=$count;$i++){
echo $arr[$i],'<br/>';
}
$arr=[
5=>'a',
-12=>'b',
345=>'c'
];
$arr=[
'username'=>'king',
'age'=>12
];
echo '</pre>';
数组运算符相关
array_merge 合并数组
$arr1=['a','b','c'];
$arr2=['d','e','f'];
$arr3 = $arr1 + $arr2;
$newArr=$arr1 + $arr2;
echo "如果数组键名相同,只会使用左边数组元素的值";
var_dump($arr3);
var_dump(array_merge($arr1, $arr2));
$arr1=[
'a','b','c'
];
$arr2=[
10=>'c',
11=>'d',
12=>'e'
];
$arr3=[
'username'=>'king',
'age'=>12
];
$arr4=[
'username'=>'queen',
'age'=>23,
'email'=>'382771946@qq.com'
];
$newArr=$arr1+$arr2+$arr3+$arr4;
print_r($newArr);
echo '<hr/>';
//== 比较数组的键名和键值是否相同,如果相同返回true,否则返回false
//=== 既要比较键名和键值是否相同,而且顺序也要相同
$a=[
3=>'a',
'5'=>true
];
$b=[
5=>1,
'3'=>'a'
];
$c=[
'3'=>'a',
'5'=>1
];
var_dump($a==$b,$a===$b,$a==$c,$a===$c);
echo "<hr/>";
通过foreach遍历数组
foreach分为两种形式
只要键值的情况
foreach($数组名称 as $val){
循环体;
}
既要键名又要键值的情况
foreach($数组名称 as $key=>$val){
循环体;
}
-----------------------------
$arr=[
5=>'a',
12=>'b',
-123=>'c',
34=>'d'
];
print_r($arr);
-----------------------------------
foreach($arr as $v){
echo $v;
};
查看PHP版本 phpinfo();
定义数组
通过array()
空数组
$arr=array();
//检测是否是数组
var_dump($arr);
//gettype():得到变量的类型
echo gettype($arr);
通过is_array():检测变量是否为数组
var_dump(is_array($arr));
//通过array()下标连续的索引数组
$arr=array(2,3.4,'king',true);
print_r($arr);
//手动指定下标
$arr=array(
3=>'a',
5=>'b',
'6'=>'c'
);
print_r($arr);
//定义关联数组
$userInfo=array(
'username'=>'king',
'age'=>12,
'email'=>'382771946@qq.com',
'salary'=>600000
);
print_r($userInfo);
//定义混合数组
$arr=array(
'a','b','c',
'username'=>'imooc',
'desc'=>'最好的在线教育平台',
5=>'d',
-12=>'e'
);
print_r($arr);
测试数组键名的
echo '<pre>';
$arr=array(
3=>'a',
'username'=>'king',
5.6=>'b',
true=>'c',
false=>'d',
null=>'e'
);
var_dump($arr);
echo '<hr/>';
//如果下标重复,后面的覆盖前面的值
$arr=array(
'a',
0=>'b'
);
var_dump($arr);
echo '<hr/>';
//如果新添加元素没有指定下标,它的下标为已有下标最大值加1(已有下标不全为负数)
$arr=array(
'a','b','c',
5=>'d',
19=>'e',
'f'
);
var_dump($arr);
echo '<hr/>';
//如果已有下标都为负数,那么新添加元素的下标从0开始
$arr=array(
-12=>'a',
-43=>'b',
'c'
);
var_dump($arr);
echo '</pre>';
二维数组
//二维索引+索引
$arr=array(
array('a','b','c'),
array('d','e','f')
);
//print_r($arr);
//二维索引+关联
$arr=array(
array(
'id'=>1,
'username'=>'king'
),
array(
'id'=>2,
'username'=>'queen'
)
);
//print_r($arr);
//二维关联+索引
$arr=array(
'users'=>array('king','queen','张三'),
'ages'=>array(12,34,56)
);
//print_r($arr);
//二维关联+关联
$arr=array(
'usersInfo'=>array(
'id'=>1,
'username'=>'king'
),
'courseInfo'=>array(
'cid'=>1,
'courseName'=>'PHP'
)
);
//print_r($arr);
二维中最重要的形式是二维索引+关联的形式
(数据库中查询出的记录就是这种形式)
二维的关联+关联
echo "<pre/>";
$arr=array(
array(
array('a')
)
);
print_r($arr);
echo '<hr/>';
$arr=['a','b','c'];
print_r($arr);
echo '<hr/>';
$arr=[
['id'=>1,'username'=>'king1','age'=>12],
['id'=>2,'username'=>'king2','age'=>22],
['id'=>3,'username'=>'king3','age'=>32],
['id'=>4,'username'=>'king4','age'=>42]
];
print_r($arr);
echo '<hr/>';
$arr=[
'courses'=>['courseName'=>'php','courseDesc'=>'PHP 是最好的语言'],
'test'=>['a'=>'aa','b'=>'bb']
];
print_r($arr);
动态创建数组
//动态创建下标连续的索引数组
$arr1[]=12;
$arr1[]=45678.9;
$arr1[]=true;
//array(12,45678.9,true)
print_r($arr1);
//手动指定下标的索引数组
$arr2[3]=45;
$arr2[-56]=-12;
$arr2[0]='hello world';
$arr2[]='this is king show time';
print_r($arr2);
//动态创建关联数组
$desc='this is a test';
$userInfo['username']='king';
$userInfo['age']=12;
$userInfo['desc']=$desc;
$userInfo[12]='aaaa';
$userInfo[]='bbb';
print_r($userInfo);
//二维的索引+关联
$arr3[]=['id'=>1,'username'=>'king1','age'=>12];
$arr3[]=['id'=>2,'username'=>'king2','age'=>12];
$arr3[]=['id'=>3,'username'=>'king3','age'=>12];
$arr3[]=['id'=>4,'username'=>'king4','age'=>12];
print_r($arr3);
//二维关联+关联
$arr4['course']=['courseName'=>'php','courseDesc'=>'PHP is the best language'];
print_r($arr4);
$arr5[][][][][]=1;
print_r($arr5);
快速创建数组
//快速创建下标连续的索引数组
$arr=range(1,10);
print_r($arr);
$arr=range(-10,5);
print_r($arr);
//手动指定步长的数组 步长数2
$arr=range(1,10,2);
print_r($arr);
echo '<hr/>';
$arr=range('a','z');//97~122
print_r($arr);
echo '<hr/>';
for($i=97;$i<=122;$i++){
//从指定 ASCII 值返回字符。
$arr1[]=chr($i);
}
print_r($arr1);
echo '<hr/>';
//快速创建关联数组
$username='king';
$age=12;
$email='382771946@qq.com';
$userInfo1=array(
'username'=>$username,
'age'=>$age,
'email'=>$email
);
print_r($userInfo1);
$userInfo2['username']=$username;
$userInfo2['age']=$age;
$userInfo2['email']=$email;
print_r($userInfo2);
//注意,通过compact创建数组的时候,
//只能写已经存在的变量的名称,不需要加$
$a=12;
$b=false;
$c=null;
$userInfo3=compact('username','age','email','a','b','c');
print_r($userInfo3);
数组使用–查找元素
$arr=['a','b','c','d'];
print_r($arr);
echo $arr[2];
echo '<br/>';
$arr=[
'username'=>'king',
'age'=>12,
'email'=>'382771946@qq.com'
];
echo '用户名为:',$arr['username'],'<br/>';
二维的索引+关联
echo '<hr/>';
$users[]=['id'=>1,'username'=>'king1','age'=>21];
$users[]=['id'=>2,'username'=>'king2','age'=>51];
$users[]=['id'=>3,'username'=>'king3','age'=>11];
print_r($users);
echo $users[1]['username'];
echo '<hr/>';
echo $users{2}{'age'};
echo '<hr/>';
//向数组中添加元素
$arr=['a','b','c'];
$arr[]='d';
$arr['test']='this is a test';
$arr[56]='hello world';
$arr[0]='aaaa';
print_r($arr);
//更新操作
$arr[3]='dddd';
print_r($arr);
//删除指定元素
unset($arr['test']);
print_r($arr);
unset($arr[56]);
print_r($arr);
echo '<hr/>';
//针对于二维数组的操作:增删改查操作
$courses[]=['id'=>1,'courseName'=>'php','courseDesc'=>'PHP是最好的语言'];
$courses[]=['id'=>2,'courseName'=>'javascript','courseDesc'=>'javascript是最好的语言'];
$courses[]=['id'=>3,'courseName'=>'go','courseDesc'=>'go是最好的语言'];
print_r($courses);
echo $courses[0]['courseName'],'--',$courses[0]['courseDesc'],'<br/>';
$courses[1]['courseName']='js';
echo $courses[1]['courseName'],'<br/>';
unset($courses[2]['courseName']);
print_r($courses);
unset($courses[1]);
print_r($courses);
echo '<hr/>';
function test(){
return ['a','b','c'];
}
$res=test();
echo $res[1];
echo '<br/>';
echo test()[1];
数组指针相关函数
key($array):
得到当前指针所在位置的键名,如果不存在返回null
current($array):得到当前指针所在位置的键值,如果不存在返回false
next($array):
将数组指针向下移动一位,并且返回当前指针所在位置的键值;如果没有,返回false
prev($array):
将数组指针向上移动一位,并且返回当前指针所在位置的键值;如果没有,返回false
reset($array):
将数组指针移动到数组开始,并且返回当前指针所在位置的键值;如果没有,返回false
end($array):
将数组指针移动到数组的末尾,并且返回当前指针所在位置的键值;如果没有,返回false
*/
echo '<pre>';
$arr=[
'a','b','c',
35=>'test',
'username'=>'king',
'age'=>12
];
// print_r($arr);
/*
Array
(
[0] => a
[1] => b
[2] => c
[35] => test
[username] => king
[age] => 12
)
*/
echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
echo next($arr),'<br/>';
echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
echo next($arr),'<br/>';
echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
echo next($arr),'<br/>';
echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
echo next($arr),'<br/>';
echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
echo prev($arr),'<br/>';
echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
echo '<hr/>';
echo end($arr),'<br/>';
echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
var_dump(next($arr),key($arr),current($arr));
echo '<hr/>';
echo reset($arr),'<br/>';
echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
echo '</pre>';
each list
<?php
/*
list():将下标连续的从0开始的索引数组赋值给相应的变量
each($array):得到当前指针所在位置的键值对,返回的是数组,包含4个部分;并且将指针向下移动一位
*/
/* $arr=['a','b','c'];
list($var1,$var2,$var3)=$arr;
echo $var1,$var2,$var3;
list(,$b,$c)=$arr;
list(,,$c)=$arr;
echo $b,$c;
echo $c;
echo '<hr/>';
$arr=['a','b','c'];
list($arr1[],$arr1[],$arr1[])=$arr;
print_r($arr1);
list() = [];
list(,,) = [];
list($x, list(), $y) = $a;*/
// $arr=[
// [1,'king1',12],
// [2,'king2',22],
// [3,'king3',32]
// ];
// foreach($arr as list($id,$username,$age)){
// echo $id,'-',$username,'-',$age,'<br/>';
// }
$arr=[
'a'=>'aaaa',
'b'=>'bbbb',
'c',
'username'=>'king',
33=>'ddd'
];
//print_r($arr);
/*
Array
(
[a] => aaaa
[b] => bbbb
[0] => c
[username] => king
[33] => ddd
)
*/
// $res=each($arr);
// print_r($res);
/*
Array
(
[1] => aaaa
[value] => aaaa
[0] => a
[key] => a
)
*/
// echo key($arr),'-',current($arr);
// list($k,$v)=each($arr);
// echo $k,'-',$v,'<br/>';
// while(list($k,$v)=each($arr)){
// echo $k,'--',$v,'<br/>';
// }
重点内容
echo '<pre>';
$userInfo=[
'username'=>'king',
'password'=>'123456',
'email'=>'382771946@qq.com'
];
$keys=join(',',array_keys($userInfo));
// print_r($keys);
$vals="'".join("','",array_values($userInfo))."'";
// print_r($vals);
//INSERT user(username,password,email) VALUES('king','123456','382771946@qq.com')
$sql="INSERT user({$keys}) VALUES({$vals})";
echo $sql;
echo '<hr/>';
//in_array()
$allowExts=['jpg','jpeg','png','gif'];
$ext='jpg';
var_dump(in_array($ext,$allowExts));
echo '<hr/>';
//shuffle($array):打乱数组
$string='速,度,快,放,假,了,开,始,对,房,价,来,看,是,地,方,记,录,卡,维,尔';
$arr=explode(',',$string);
shuffle($arr);
// print_r($arr);
$arr=array_flip($arr);
$res=array_rand($arr,4);
echo join('',array_values($res));
print_r($res);
echo '<hr/>';
$sum='102,123,456,789,2345,535';
echo array_sum(explode(',',$sum));
echo '<br/>';
echo array_product(explode(',',$sum));
重点内容
给你这样的字符串2,3,5,19,39
$string='2,3,5,19,39';
$arr=explode(',',$string);
echo array_sum($arr);
echo '<br/>';
echo array_product($arr);
echo '<hr/>';
/*
1.txt.php.jpg
截取文件扩展名,并且检测扩展名是否在['jpg','jpeg','gif','png']
*/
$allowExts=['jpg','jpeg','gif','png'];
$filename='1.txt.php.jpg';
$arr=explode('.',$filename);
$ext=end($arr);
var_dump(in_array($ext,$allowExts));
echo '<hr/>';
/*
array_push():
array_pop():
array_unshift():
array_shift():
*/
$arr=['a','b','c'];
$res=array_pop($arr);
echo $res;
print_r($arr);
echo '<hr/>';
array_push($arr,'hello world',123,324,23,345,'sdfs');
print_r($arr);
echo '<hr/>';
$arr=['a','b','c'];
echo array_shift($arr);
print_r($arr);
array_unshift($arr,'d','ef');
print_r($arr);
echo '<hr/>';
$filename='1.txt.jpg';
$allowExts=['jpg','jpeg','gif','png'];
$arr=explode('.',$filename);
$ext=array_pop($arr);
if(in_array($ext,$allowExts)){
echo '文件类型合法';
}else{
echo '非法文件类型';
}
/*
快速生成字符串
*/
$str1=join('',range(0,9));
$str2=join('',range('a','z'));
$str3=join('',range('A','Z'));
echo '<hr/>';
$arr1=range(0,9);
$arr2=range('a','z');
$arr3=range('A','Z');
$newArr=array_merge($arr1,$arr2,$arr3);
// print_r($newArr);
// $str='';
// for($i=1;$i<=4;$i++){
// $str.=$newArr[mt_rand(0,count($newArr)-1)];
// }
// echo $str;
$res=array_rand(array_flip($newArr),4);
// print_r($res);
echo join('',$res);
$newArr=array_merge($arr1,$arr2,$arr3);
print_r($newArr);
shuffle($newArr);
print_r($newArr);
重点内容
$arr=['a','b','c'];
array_push($arr,'d','e','f');
print_r($arr);
$res=array_pop($arr);
echo $res;
print_r($arr);
$arr=['a','b','c'];
array_unshift($arr,'hello world');
print_r($arr);
echo array_shift($arr);
print_r($arr);
php如何定义数组常量
//define常量的值;仅允许标量和 null。
//标量的类型是 integer, float,string 或者 boolean。
//所以数组是不允许的
//方法一:采用eval()函数
//eval() 函数把字符串按照 PHP 代码来计算。
//该字符串必须是合法的 PHP 代码,且必须以分号结尾。
//如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。
// define('BEST_PHPER',"return array('name'=>'巩文','address'=>'china');");
// $BEST_PHPER=eval(BEST_PHPER);
// var_dump($BEST_PHPER);
//方法二:采用json_encode()函数
// define('BEST_PHPER',json_encode(array('name'=>'巩文','address'=>'china')));
// $BEST_PHPER=json_decode(BEST_PHPER,true);
// var_dump($BEST_PHPER);
//方法三:采用serialize()函数
// define('BEST_PHPER',serialize(array('name'=>'巩文','address'=>'china')));
// $BEST_PHPER=unserialize(BEST_PHPER);
// var_dump($BEST_PHPER);