Php常用函数以及方法总结
数据类型:
string;
number;
boolean;
符合数据型:
array;
obj;
resource;
$name=<<<T
值
T;
echo name 这种方式注意t前后不能有空格。
1、define(‘常量名’,‘常量值’)----常量的申明,不用$,echo ‘常量名’--->常量值。
2、“” ‘’ heredoc结构 $age<<T
18;
T;
以上三种是生命字符串的方法
3、gettype(变量名)--------->获取字符的变量属性,在js中用的是typeof;
4、在运行的过程中特别注意的是,变量用单引号包裹时,单引号里面的变量不能进行解析,可换用双引号;
5、Strlen(变量名)-------->获取变量的字符串长度,遇到汉字(utf8 3字节)(gbk 2字节)。
6、mb_strlen(变量名)-------->获取变量的字符串长度,遇到汉字的时候按照一个字节显示。
7、is_string(变量名)---------->判断变量是不是字符串,结果返回是bool型,(true、false);
8、is_int(变量名)---------->判断变量是不是整数
9、is_flaot(变量名)---------->判断变量是不是小数
10、is_numeric(变量名)---------->判断变量是不是有效数字
11、is_bool、is_boolean(变量名)---------->判断变量是不是布尔形
12、var_dump(变量名)--------->答应内容,包含(变量的数据类型、变量值、长度)一般用于调试代码
13、echo(变量名)------------>将变量装化成字符串输出,遇到变量是true---‘1’,false---‘’空字符;
14、print_r(变量)------------->输出函数,显示下标和对应下标的值;
15、Settype(变量,‘bool’)------->将变量强制转换成bool元素,有六种转化出来bool是false(null 0 0.0 ‘’ ‘字符串’ array()空数组 );转化出来要配合var—dump使用;
16、转化数字形的时候,不是以数字开头的都是0,以数字开头的只转化数字,true---1 false---0;
17、isset(变量)---------->判断函数是否定义。 isset(数组名[下标名])---判断数组中的元素是否被定义;
18、unset(变量)---------->销毁函数 unset(数组名[下标名])---删除数组中的元素。
19、empty(变量)------------->判断函数是否为空,在php中有(。 Null 0 0.0 ‘字符串’ array()空数组 false 没有定义的变量)这八种结果为true,其他的都为false。
20、$arr=array(.......)----------申明一个数组;array(1,2,3,4,5)枚举数组,下标默认是0开始从左至 右,array(‘a’=>’1’,‘b’=>’2’,‘c’=>’3’)关联数组,下标是abc。
21、Var_dump(数组)-------->(类型、长度、字符串值);
22、Print_r(数组)------(下标、了内容)和echo输出变量的效果一样。
23、$arr(‘下标’)=‘值’------->下标存在就是修改对应下标的值,不存在就是增加元素;
24、Count(数组)--------->查看数组的元素个数,(不带输出功能)
25、Foreach($arr数组 as $k=>$v){ //$k表示数组的下标,$v表示数字的值
语句块
}
26、在html标签中嵌套循环;
<?php
foreach($arr as $v){
?>
要循环的html标签,注意要使用函数的话,必须嵌套php中<?=?>等格式;
<?php
}
?>
27、在foreach中想要修改元素,必须是通过下标修改,不能直接修改$v=... 而是$arr[$k]=...
is_array--------->判断变量是不是一个数组,返回布尔型。
isset(数组[下标])--------->判断数组中是否有指定下标。
unset(数组[下标])--------->删除数组中指定下标的元素。
count($arr,1)------------>将递归的对数组计数,计数多维数组的所有元素,层数。
28、逻辑运算&& ||
表达式1 && 表达式2 ----------1真执行2,否则不执行2. 有假为假,同真为真;
表达式1 || 表达式2 ----------1假执行2,否则不执行2. 有真为真,同假为假;
返回布尔型;
29、switch函数
$a=5
switch ($a){
case 5;
echo $a+5;
break;
case 7;
echo $a+10;
break;
}------------------------------------------------> 5
29、is_file(‘文件路径’)--------->判断文件是否存在。
30、touch(‘文件路径’)---------->在指定的路径下创建文件或文件夹。
31、关于数组的函数
list($a,$b,$c)=array(1,2,3);
echo $a.','.$b.','.$c --------------1,2,3
相当于a的值是1,b的值是2,c的值是3.也可以理解成list里面的函数名接收array里面的值; each(数组)--------将元素的下标和值解析成元素,一个枚举一个关联
shuffle — 将数组打乱
32、current(数组)------------->获取数组中当前元素。
33、 到就返回false;
34、prev(数组)--------------将指针移动到上一个元素,并获取当前元素,当前移动到首部再移动到就返 回false;
35、reset(数组)---------------将指针一到第一个元素,并获取当前元素。
36、end(数组)---------------将指针一到第一个元素,并获取当前元素。
37、array_reverse(数组[,true])------------将数组元素倒叙排列,返回的是一个新的数组不会影响原来的数 组,--------如果第二个数为true下标还是自身的下标,和值一起倒叙,不要第二个参数默认为false, 下标还是从左到右一起递增,只是值倒叙。
38、rand(1,10)---------产生一个1-10 的随机数;只能是数字;
39、range(1,10)------产生一个1-10的数组,也可以是a--z;
40、局部变量和全局变量
例:fuction a($b){
$b=10;
}
Echo $b;-----------这是个错误的函数,因为$b在函数内部申明,只能在内部使用,不能在外部调用。
41、global $k;-----------------如果$k是一个全局变量,在函数内部使用这个函数,表示在内部引入全局变 量,由此$k在局部变量之内就可以使用了;要是$k之前没有在外部申明,那么就表示创建了一个全 局变量。
42、再说全局变量怎样在函数内部调用
例:$k=10;
Functiopn par($m){
global $k;
Return $m+$k
}
Echo par(3)-------------------13//函数在内部用global引入,由此内部可以使用。
43、func_get_args( )----------获取所有的实参,返回一个数组。
44、func_get_arg(下标)----------获取某个指定参数。
45、func_num_args( )--------------获取所有实参个数。
46、$$--------------可变变量。
例:$m=‘n’;
$n=’10’;
echo $$m-------10;// 分析$$m中$m=n---------->$n--------->10;
47、extract------------将数组中的下标转化成全局变量,其值就是对应的元素值。第二个参数不给时会直接覆盖已有的变量,第二个参数为 EXTR_SKTP时不会覆盖;
例:$arr=array(‘a’=>’1’,’b’=>’2’);
Extract($arr,EXTR_SKTP);
echo $a. $b-------------1.2;//
array_search ------------------将数组中的元素小标拿出来,array_search(元素,$arr)----返回元素的下标值。
48、__FUNCTION__ ---------------在函数内部使用,获取当前函数名;
49、__DIR__------------------------获取当前目录文件夹,返回盘符路径;
50、__FILE__---------------------------获取当前文件的盘符路径;
51、basename(__FILE__)------------获取当前文件名字;
52、basename(__DIR__)------------获取当前文件夹名字;
53、dirname(__FILE__)----------获取当前文件的上级路径,返回盘符路径
54、dirname(__DIR__)----------获取当前文件夹的上级路径,返回盘符路径
55、Function_exists(‘函数名’)---------测试函数名是否存在,主要用于测试系统环境有没有开启扩展。
56、range(start, end, 步长值)-------建立一个包含指定范围的数组,可以用于数字也可以用于字母;没有 给步长值,默认为1;返回一个数组;
例:print_r (range('a', 'z', 2));
print_r (range('1', '20', 2));
57、chr(ascii编码)------------返回指定的字符;
58、Ord(‘字符’)-----------返回的是ascii编码值;
59、explode------------将字符串分割成数组。
例:$str=__FILE__;
$arr=explode(‘\\’,str); //explode(‘分割符’,’字符串’);
Print_r($arr);
60、join--------------将数字连接成字符串;
例子:
Echo join(‘@’,$arr); //join(链接符,数组);
数据库
配置mysql在windows下的变量,将mysql的bin目录放在windows下的管理、环境变量path中;
1、mysql –uroot -p------------输入数据库密码进入数据库服务器;
2、show databases;----------查看服务器里面的数据库。
3、use ‘数据库’;----------选择数据库;
4、show tables;----------------展示表单目录;
5、select * from 表单;------------查看表单内容。
6、create database 数据库名;---------添加数据库;
7、create table 表名;-------------------创建表单;
8、show create table 表单名;-------------------查看创建的表单数据;
9、drop tables 表名;-------------------------------删除表单;
10、drop database 数据库名字;--------------------------删除数据库;
11、desc 表单名;----------------------------------查看表单中的字段结构;
12、insert into 表单名字 value(字段)-------------------向表单中插入数据;
13,update 表单名 set 项目名=‘值’ where id=。。。或者id between 1 and 2 ;-----------修改表单数据
14、delete from 表名 where id=。。。。。。;------------------删除表单数据。
15、and or not 逻辑运算使用,优先级not > and > or
16、between n1 and n2------------------表示在n1 和n2 之间,包含n1 n2; 也可以是not between...
17、not in (n1,n2 ,n3)---------------表示不包括n1 n2 n3在内的元素;
18、like _ 或 %-----------------------模糊匹配,— 代表任意一个字符,%代表任意多个字符;
19、md5(密码,)----------------------------给密码加密,默认32进制;
20、order by 字段名 asc升序 或者 order by 字段名 desc降序;--------给查询的结果排列;
21、group by 字段名 ---------------------------将值相同的分在一组,
22、count(1)---------------------计数
23、max(字段名)------------------求某列最大值,
24、min(字段名)------------------求某列最小值,
25、sum(字段名)------------------求某列之和,
26、avg(字段名)------------------求某列平均值,
27、having 条件----------------------------------一定是给在group之后的;
28、limit 开始行(start) 查询多少行(len) -------------------当stat值为0 的时候可以不写, Limit 3,5;------表示显示下标为3开始到5结束的列。
29、一个sql语句中按顺序执行的是,where----groupby----orderby----limit
30、alter table 表名 add字段名 字符按类型 (after 字段名-----表示加载那个字段后面) 添加一个字段;
31、alter table 表名 drop 字段名-------------删除字段;
32、rename table 原表名 头 新表名--------------------修改表名;
33、mysqladmin -uroot –p password 新密码----?输入以前的旧密码,----?在输入新密码;-----修改密码;
34、set names 编码 --------------------------------设置客户端编码与当前文档编码一致。
用php操作数据库
1、 步骤
1》、链接数据库服务器
2》、链接数据库
3》设置客户端编码
Set names 编码 --------------------------------设置客户端编码与当前文档编码一致。 4》c-u-r-d操作语句
5》、关闭链接
2、 开启扩展 php。Ini中的php-mysql.dll
检查扩展是否开启:
If(!function_exists(‘mysql_connect’)){
Exit(‘请加载mysql.dll扩展’);
}
3、 mysql_content(‘主机名’,’用户名’,’密码’);------------链接数据库服务器,成功返回链接资源,不成功返
回false;
$link=@mysql_content(主机,用户,密码) or exit(‘链接数据库服务器失败’)
注意:@+代码。表示影厂当前行的非致命错误
4、 mysql_select_db(‘数据库’,$link(资源))
or die[exit](‘悬着的数据库不存在’)----------------------以上是选着数据库的操作。成功返回true错误返回false,die与exit的功能一样。
5、 mysql_query(‘set name utf8’)-------------------设置客户端编码;
6、 mysql_query(‘sql语句’)---------------向数据库发送执行sql语句的命令,返回结果是资源型或者逻辑型;
这一步是关键的一部,是命令传向数据库的一步骤。
7、 总结:
1》 结果集资源:select desc show---------这些结构的语句返回结果集资源
2》 True:insert update delete drop set name use 这些语句返回true
3》 False:当返回false时说明sql语句有误;
8、 mysql_fetch_assoc(结果集资源)-----返回关联数组,查询字段作为下标,字段值为元素值,当道最后
当最后一条信息之后就返回false,该函数主要就是将结果集资源中的元素内容提取出来。
9、 mysql_fetch_row(结果集资源)-----返回的是枚举数组,下标位数字,字段值为元素值,最后一条之后
返回false。该函数主要就是将结果集资源中的元素内容提取出来。
10、 mysql_fetch_array(结果集资源)------------------返回混合数组,读到最后返回false;
11、 Mysql_free_result($result)------------释放结果集资源;
12、mysql_close($link)--------------关闭数据服务资源;
13、header(‘Content-Type:text/html; charset=utf-8’);-----------------设置文档编码
14、header(‘location:路径’);-------------------转向到指定的界面,路径可以是盘符路径,也可以是相对路径;
in_array(元素值,数组)---------判断该值是否是数组元素,是就返回true,不是就返回false;
15、mysql_num_rows(结果集资源)-------------------------取得结果集资源中行数目;
16、mysql_free_result(结果集资源)-------------------------释放结果集资源;
17、require ‘文件路径’ 或 require(‘文件路径’)支持盘符路径-------应用外部文件
18、include 同上;
19、ini-get(include-path)------------------------获取include—path目录值;
20、ini-set(‘includ-path’,新目录)-----------------设置include-path值;
21、cyrrent-date()---------------------------------------------获取当前日期;
22、now()--------------------------------------------获取当前日期+时间;
23、rtrim($str,[,字符])------------------------------删除字符末端的空白(或指定字符)
24、ltrim($str,[,字符])------------------------------删除字符首部的空白(或者指定字符)
25、trim($str,[,字符])------------------------------删除字符两端的空白(或者指定字符)
地址get传递的几种方式:
href='1.php?a=100';
header('location:1.php?a=100');
js中--location.href='1.php?a=100';
form表单中---action='1.php?a=100';
method='get';
地址post传递的种方式只有那个一种:表单中method='post';
验证码的制作
-----不能有html标签和echo的出现
操作流程:
1、创建一个画布;
2、在画布上写随机内容;
3、为了能验证用户输入的验证码是否正确,随机放入;
4、将画布输出到浏览器;
5、调用验证码
检查扩展是否开启
<?php
If(!function_exist(‘imagecreatetruecolor’)){
Exit (‘请开启gdr.dll扩展’)
}
?>
下面是生成画布:
$w=300;
$h=200;
$img=imagecreatetruecolor($w,$h); //设置图像资源的规格
$color=imagecolorallocate($img,参数,参数,参数); //设置前景色
imagestring(图片资源,字体大小[1-5],坐标[0,0往下写],内容,颜色);//设置内容的样式这个不常用, 中文容易乱码
imagettftext($img,22(字体大小),0(倾斜角度),0,0(坐标往上写),$color,$font(字体),内容);//这是第二种设置内容样式,这个比较常用,这当中的可以是文字也可以是英文,不会乱码
$font=‘字体路径’;
header(‘content-type:image/jpeg’) //改变当前文档的类型为jpeg,gif,png
imagejpeg($img); //将图片输出到浏览器
mt-rand(1,9) ------------------------- 颜色随机,重复率低;
rand(0,255)------------------------ 颜色随机
rand(数,数) ------------------------- 随机数
mt-rand(数,数) ----------------------- 随机数
Imagecolorallocate(资源,255,255,255) ---------------------- 设置颜色
1、imagesetpixel(资源,坐标(1,2),颜色)---------绘制干扰点;
2、imageline(资源,开始坐标,结束坐标,颜色)--------------绘制干扰线;
3、imagearc(资源,圆,坐标,wh,0,360(圆弧),颜色)-------------------圆的绘制,[椭圆中w!=h]或弧线;
4、imagefill(资源,0,0,颜色)-----------修改背景色;
5、imagedestroy(资源)---------------------释放图片资源;
array_merge()----将多个数组合并
arrar_rand($arr,n)--------随机取数组中的n个数的下标;
shuffle()---------将数组的元素打乱;
6、session_start();-------------------------开启会话,
$_SESSION[下标]=值----------------------里面存的是php中会话数据,
7、strtoupper---------------------------------将字母转换成大写;
strtolower---------------------------------将字母转换成小写;
ulfirst------------------------------------将首字母转换成大写;
ulwords------------------------------------将首字母转换成小写;
8、implod(数字);---------------------------将数组转换成字符串; 例:$array=array('a','b','c');
echo implod($array);-----------------------------》a,b,c
9、str_split(字符串)---------------------------------将字符串转换成数组; 例:str_split(‘abc’)---------------------》array(a,b,c);
10、intval(数字)------------------------取整;
ceil(数字)---------------------------向上取整
floor(数字)-------------------------向下取整;
打水印
步骤:
1、已有的图片,打印的文字和图片;
1、要处理的图片导到脚本中作为图像资源;
2、打水印;
3、要保存到磁盘上;imagejpeg($img,文件保存路径);
步骤开始:
1、导入图片;
imagecreatefromjpeg--------------导入jpeg图片;
imagecreatefromgif----------------带入gif图片;
imagecreatefromjpeg--------------导入png图片;
导入成功返回一个图像资源,失败返回false;
2>、获取图片的高度宽度;
imagesx(资源)--------------------获取宽度;
imagesy(资源)--------------------获取宽度;
3>、打水印
打印字符:imagestring(资源,字体大小,坐标,内容,颜色);//遇到汉字会乱码;
所以使用imagettftext(资源,字体大小,斜,0,0(表示坐标),颜色,字体,内容); $color=imagecolorallocate($img,255,255,255)---------------------------设置颜色;
打印图片:imagecopy()先导入要打印的图片之后,
imagecopy(大图片,小图片,x大,y大,x小,y小,w小,h小);将水印图片放在被处理的图片上。
4>、imagejpeg(资源)-------------------------输入图片;
imagedestroy(资源)------------------清除内存;
select * from 表名字;
select 字段列表 from 表名 where 条件;
insert into 表名 value(字段值);
update 表名 set 字段名=字段值
必须要加上where条件;
delete from 表名 where 条件;
truncate table 表名----删除表中所有记录,主键(id)重新排序。
一个sql语句中顺序 where ,group by,order by ,limit;
**************7day
多表操作;
select 字段名 from 表1,2 where 连接条件;多个条件用and连接;
内连接:
select 字段名 from 表1 join 表n on 连接条件
外连接:
select 字段名 from 表1 left join on 连接条件 (left左边为主表) right join右边为主表 mysql_num_rows-----查看结果资源返回的条数
mysql_free_result(结果集资源)-------------释放资源;
mysql_close(连接资源)------关闭连接数据库服务器;
in_array(元素值,数组)---------判断该值是否是数组元素,是就返回true,不是就返回false;
地址get传递的几种方式:
href='1.php?a=100';
header('location:1.php?a=100');
js中--location.href='1.php?a=100';
form表单中---action='1.php?a=100';
method='get';
地址post传递的种方式只有那个一种:表单中method='post';
1.setcookie('name','val',保存时间,作用域,域名)
向cookie中存数据
作用域表示的是指定在那个作用区域才能用这个数据
2 $_COOKIE['name'];
读取cookie
3.删除cookie('name','val',过期时间,作用域,域名)
因为时间已经过期所有你不访问到什么数据
unset($_COOKIE['user'])----只能删除本页面的东西,但是在其他页面还是可以访问,因为并没有删除浏览
器上的东西,只是删除了本页面的cookie
(1)session_destroy()--清除所有session
(2)unset($_SESSION['下标'])--清除指定session
2.设置:$_SESSION['下标']=值;
3.读:$_SESSION---返回一个数组
4.改变session中数据时间:
session_start()
setcookie(session_name(),session_id(),time()+24*3600)
获取session在cookie中的id和和名字,
strcmp(str1,str2)----------区分大小写比较值是否相等;
strcasecmp()--------------不区分大小写比较值; 如果值相等的话就返回0,不相等就返回1,
**为了安全登录,过滤sql语句中的特殊符号
(1)addslashes()--返回字符串,该字符串为了数据库查询语句等
的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、
反斜线(\)与 NUL(NULL 字符)。
---stripslashes()--去除字符串中的'/' ;
pathinfo(文件路径)---获取文件信息,文件的名字,位置,
pathinfo($x,PATHINFO_EXTENSION )------快速获取文件后缀名;
***********12day***
array_shift()----------删除首部第一个元素,返回被删除的元素,
array_unshift($arr,'a','b')---------在首部增加元素,返回值是数组的元素个数;
array_push($arr,'a')----------在尾部增加,返回数组长度。
array_pop()-------------在尾部删除元素,返回被删除的值只能删除一个;
array_splice()--------可以在数组中删除,添加,替换。
array_splice($arr,0,2)------从数组中第一个元素开始向后删除两个元素,包括自己;
给三个参数是删除,删除删除冲给的元素开始向后删两个,元素包括自己;
给四个参数可以是替换也可以是增加;从枚举元素的开始下标开始替换,向后几个,被替
换的元素包括自己;替换的方式是整体替换;只能是四个参数,最后一个参数可以
来替换;
原数组任然是一个一维数组;
给四个参数可以是替换也可以是增加;从枚举元素的开始下标开始替换,向后几个,(如果
第三个参数为0,表示在起始下标之前添加元素)只能是四个参数,最后一个参数可
组来替换; 原数组任然是一个一维数组;
slice(起始下标,结束下标),提取数组元素返回一个新的数组;
is_array(数组值)---------判断元素是否在数组中,是就返回true,不是就返回false;
array_search(数组值, 数组);----判断元素是否在数组中,是就返回下标,不是就返回false; strrev(字符串)-----的反转字符串;返回一个反转后的字符串;
strpos($str,'元素',参数)--------返回元素第一次出现的位置,区分大小写,查找到参数位置结束; stripos($str,'元素'参数)--------返回元素第一次出现的位置,不区分大小写查找到参数位置结束
strrpos($str,'元素'参数)--------返回元素第最后一次出现的位置,区分大小写,参数给负数,表示从左
到右开始查找到参数位置的最后一次出现的位子;
strripos($str,'元素'参数)--------返回元素第最后一次出现的位置,不区分大小写参数给负数,表示从左
到右开始查找到参数位置的最后一次出现的位位置;
strstr(str,'子字符',true/false)---------------提取字符串,false表示提取子字符串之前的,true子字
符串之前的;
stristr()----------------不区分大小写;
substr($str,a,b)----提取字符串,从a开始,到b结束,不给b表示提取到最后;
str_replace('子字符',替换的字符,$str,$c[表示替换的次数])--------用一个字符来替换子字符;全局 以是数 是数组
替换;
str_replace(array('a','b'),array('$','@'),$str,$c)------替换多个子字符串,就用数组装起来,后面
替换的字符也用数组装起来,替换一一对应,$c表示计数,替换多少次;
str_splite(str,[几个一组])-----分割成数组;
explode(分割符号,原字符串)------用字符分割成数组;
__DIR__-----------获取当前文件所在文件夹的路径
__FILE__----------获取当前文件的路径
dirname()-------获取最后一个斜线之后的内容;
basename()------获取最后一个斜线之前的内容;
is_dir()--------判断文件夹是否存在;
is_file()-------判断文件是否存在;
mkdir(路径)--------创建一个文件夹;
rmdir(路径)--------删除一个文件夹,但是只能删除空的文件夹;
opendir(目录)-------返回一个资源,打开文件夹;
readdir(opendir)-------读取资源,
touch()---------创建一个文件;
unlink()----------删除文件;
trigger_error('报错')-------抛出一个错误;
*********13day*********
(1)
file_get_contents($file)-----读取文件;(本地服务器,远程服务器)的内容返回一个字符串
file_put_contents($file,'文本')-----写文件;如果文件路径不存在,文件自动创建;有加入的内容; 如果想添加文本,不要替换的话就先读取原文件,之后再连接新加入的文本; ($file,$str.'\n'.'新文本') \n表示换行;
将文本文档的换行符号转换成<br/>; nl2br('文本')
将数组的元素写入文档,每个元素要换行显示;
$jo=join("\n",$arr)---------连接字符串;\n表示换行,一定是要双引号来解析;
file_put_contents('2.txt',$jo)
(2)文件的操作;
fopen()
$arr=file('2.txt')--------按照行将文本中的内容装到数组中。
filesize(文件)--------获取问文件大小
fopen($file,'r')--成功返回一个资源
打开方式:
r---只读,
r+--读写
---------文件不存在则报错,写时以替换形式,,写入多少替换多少
a--只写
a+--读写
---------文件不存在则创建,写时以追加形式
w--只写
w+--读写
---文件不存在则创建,写时以覆盖方式,以w,w+打开时会将文件以前的内容删除
读文件内容 fread(资源,几个字节内容),第二个参数用filesize($file)
可以读取文件全部内容,fread(资源,filesize($file))
fgets()--- 一次读取一行,指针向下一点一次,
fgetc()--- 一次读取一个字符,指针向下一点一次
"\n"--做2个字节处理
copy('文件','复制到的文件夹加上文件名字')
rename('文件','移动到的文件夹加上文件名字')
date('Y:m:d H:i:s',时间戳)--------获取可读的时间。
filectime($file)----------获取文件的创建时间
filemtime($file)----------获取文件的修改时间
fileatime($file)-----------获取访问文件的时间;
stringtotime('2015-2-3')------将日期型的字符串转化成时间戳。可以用来比较用;
注意:给的日期字符串格式 年-月-日或者年/月/日
strtotime('3 days')---未来三天
strtotime('-3 days')---三天前
strtotime('next month')--下一个月
file(文件路径)----------将资源按照行放在数组中;
fileclose(资源)----------关闭资源;
scandir(目录)-------读取目录中的子文件和子目录名字,返回一个数组,和下面两个函数效果一样; readdir(资源)--------读取资源中的目录和文件名
opendir(路径)----------打开文件夹,返回一个资源,和readdir连用得到数组。
glob(文件路径.'/*')------------表示匹配文件夹中所有文件的路径;
glob(文件路径.'/*.php')------------表示匹配文件夹中所有php文件的路径;
*********14day
正则
元字符
\s------------空白字符(换行符,空格,制表符)
\S------------非空白
\d------------数字【0-9】
\D------------非数字
\w-------------\w取反
\W-------------数字 字母 下划线
.-----------------除换行符以外的任意字符
任意两个成对的两个元字符组合表示匹配任意字符;
[]---------表示自定义某一类字符中的一个
[\u2E80-\u9FFF]-------匹配任意中文字符;
[^]-------表示不再方括号之间的任意字符;
[abc]---表abc之间的任意字符
[^abc]---表示不在abc之间的任意字符
[1-58]---表1,2,3,4,5,8
模式修正符:
|-----或者
a|b-------a或者b竖线两边看成整体
^-------匹配开始;
$-------匹配结束
?----------表示出现0次或一次;
*-------------出现0次或者多次;
+-------------至少出现一次;
{m}-----------必须出现m次
{m,}----------至少出现m次
{m,n}----------至少m次最多n次;
以上的除了{m}-------其他的都是贪婪;
将贪婪转化成非贪婪,在括号后面加上? {m,n}?匹配成功一次就不在匹配;
字表达式------(),调用字表达式,在正则中从左往右数,一个小括号一个编号,编号冲1开始计数。调'
时用
在正则表达时钟php的边界符号可以自定义,主要成对就可以 ;
$str='/正则/'; '$正则$'
\b表示匹配单词的边界;\bis------表示匹配is开头的单词;
i不区分大小写;
m多行处理;
s让.匹配所有字符
preg_match(正则,被匹配的字符串,匹配结果)----------搜索的时候;用正则匹字符串,将匹配出来的子
表达式装到数组中;
pre_match_all(正则,被匹配的字符串,匹配结果)--------提取的时候使用,
preg_replace(正则,需要替换的字符串,元字符串[,-1 ,$i表示替换了多少次])-----用正则匹配原字符串
,匹配成功的就替换,-1表示全局匹配替换,1表示替换一次,默认是-1;返回替换之后的字符串$i表示替换
次数’;
preg_split(正则,字符串)------------通过正则来分割,返回一个数组;
preg_grep(正则,数组)--------将匹配正则的元素重新组成数组;
preg_filter(正则,替换,数组/字符串)-------与preg_replace()的用法基本相似;唯一不一样的是,
filter返回的是满足正则的替换之后的字符串。而replace返回的数组,新旧元素都在里面。
********15day****
面向对象
类是一个概念,(是对具有相同的属性以及能操作这些属性行为的集合体)在程序中是一种数据类型,自定
义类就是在定义一种新的数据类型,累世用来产生对象的;
对象:一个实实在在地实体,有具体的属性和行为,对象时属性与行为的载体,对象是类的实例,
属性就是类属性,表示对象具有的某些特性,
行为就是方法,表示实体能干什么,或有什么功能;
1.自定义类:
class 类名{
成员属性
成员方法
....
}
public 公有的 作用范围:本类中 外部 子类;
protected 受保护的 范围: 本类中 子类;
private 私有的 范围 本类中;
(一)构造方法
1:function__construct(形参列表){
可以对成员属性赋值
}
--当创建对象时自动调用该方法,主要用于初始话对象
----注意:php5之前构造方法是与类名相同的方法名,现在也可以使用,建议使用__construct
array_key_exists(下标,数组)------判断下标是否在数组中;
define();------定义常量;
defined(常量名)---------检测常量名是否存在;
$obj=new stdClass();--------php内置类。快速生成一个对象;
$obj->name=23;
序列化:
serialize(数组)------------把数组序列化成一个字符串;
unserialize(序列化后的字符串)------------把序列化之后的字符串转化成数组;
json字符串;
json_encode()-----------------数组或者对象转换成json字符串;
json_decode()-----------------json字符串转化成数组。(第二个参数要加上true,转化之后就是一个数
组的形式。)
6.数组排序:
数组排序:
---按元素排序:
sort(数组)--按数组元素值从小到大排序,索引值也会变,如
果元素为
字符串按Linux编码排序。
rsort(数组)--按数组元素值从大到小排序,索引值也会变,如
果元素为
字符串按Linux编码排序。
asort(数组)--按数组元素值从小到大排序,索引值不会变。
arsort(数组)--按数组元素值从大到小排序,索引值不会变。 ---按下标排序:
ksort— 对数组
按照键名排序
krsort — 对数组按照键名逆向排序
----以上函数都直接影响原数
{:U(('模块/控制器/方法名'),array('id'=10))}
数和值,也可以用理由形式 参数名/值
U('地
址') //js中自动转向到控制器方法,后面跟数组表示穿的参 header一样的功能。在控制器方法中u方法的使用就是 ,和