数组:
php中的数组分为索引数组和关联数组
索引数组的索引值是整数,与其他语言类似。关联数组的索引值是字符串,与其他语言不通。
each():参数是一个数组,可以讲数组从第一个开始分解,返回的是一个数组,$arr=each(array("a"=>"b"));并将所以
向下移动,若最后没有则返回false,$arr=array(0=>"a",'key'=>'a',1=>'b','value'=>'b');
list()只能用于索引数组,关联数组无法使用。list($a,$b)=>array(a,b,'a'=>'a');最后$a=a,$b=b;
数组的便利除了foreach()还可以使用while(list($key,$value)=each($arr)){echo $key.'=>'$value;}
current($arr):返回的是数组中当前索引中的值
key($arr):返回当前数组的索引
next($arr):向下移动索引
prev():
end();
reset():
$_SERVER是一个包含诸如头信息、路径和脚本位置的数组,数组的实体由web服务器创建。
$_ENV:环境变量,数组中的内容是在php解析器运行时,从php所在服务器中的环境转换为php全局变量。
array_values()
array_keys($array,search_value,bool strict)
in_array(nel,array,bool)最后一个参数的含义是参数匹配的类型是否严格。
array_search()对数组值进行检索。
array_key_exists()给定的减值是否存在数组中。
array_flip()的作用是交换数组中的键与值,返回一个反转后的数组
array_reverse()的作用是将原数组中的元素顺序翻转,即最后一个键值对放在第一。
count(array,bool)bool的可以为0或1,作用是是否计算字数组
array_count_values()返回一个一维数组,其数组的键名是原数组的值,键值是该值在原数组中出现的次数
array_unique()作用是现将键值排序,然后相同的值留第一个遇到的值,接着忽略所有后面的键名。
array_filter(array,callback)对函数进行过滤
array_walk(array,callback,userdata)对数组中的每个元素应用回调函数处理。如果成功返回TRUE,失败返回FALSE。
array_map(callback,array...)
sort() rsort数组排序
ksort() krsort()根据键进行排序
asort arsort()根据值进行排序,其与sort()的不同是sort将忽略键,asort将保留键值关系
usort() uasort() uksort()可以通过自己创建的比较函数作为回调函数进行排序
array_slice(array,offset,length,bool)取数组中的一部分
array_splice(array,offset,length,replacement)若第四个参数无,则是从offset开始,移除length元素,若有,则是被移除的元素由此数组中
的元素所替代。如果没有移除任何值,则此数组中的元素将插入到指定位置。
array_combine()作用是通过合并两个数组来创建一个新数组。其中的一个数组是键名,另一个数组的值为键值。如果其中的一个数组为空,或者两个
数组的元素个数不通,则该函数返回FALSE。
array_merge()作用是把一个或多个数组合并为一个数组。如果键名有重复,该键的键值为最后一个键名对应的值。如果数组是数子索引的,则键名
会以连续方式重新索引。如果仅仅输入一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以0开始进行重新索引。
数组的连接也可以使用+,但是若键名相同时则保留前边出现的,这与array_merge相反
array_intersect()作用是计算数组的交集。键名不变,仅用值比较
array_diff()作用是计算数组的差集,键名不变,仅用值比较
array_rand(input,num_req)从数组中随机选出一个或多个元素,并返回。
shuffle()将数组的顺序打乱。
array_sum()返回数组中所有值得总和。
array_fill(start,num,str)键从start其开始,长度有num填充str,若start是负值,则第二个索引值从0开始其实递增
字符串的查找:
preg_match(patten,string,matches)字符串正则匹配。matches中的第一个是整体匹配,后边的是正则中的子模式匹配
preg_match_all(patten,string,matches,flag)与上一类似,其回匹配所有的,matches是二维数组。flag可以设置matches子模式匹配的顺序
preg_grep(patten,input)input是一要匹配的数组,其返回的是匹配的数组
strstr() stristr()从匹配开始到最后的字符串
strrpos() strpos() stripos() strrpos()返回字符串的位置
substr()取字符串
preg_replace()
str_replace str_ireplace
ini_set()可以设置php的错误级别
error_reporting()设置错误级别
ini_set('display_errors',1);//开启
error_reporting(E_ALL);
mktime(hour,minute,second,mouth,day,year)转换成时间戳,而且可以对时间进行校验
getdate()
设置时间时区date.timezone=Etc/GMT-8或date_default_timezone_set('PRC')
microtime(bool)返回的微秒
图片的操作:
在php中通过GD库处理图像的操作,都是现在内存中处理,操作完成后再以文件流的方式输出到浏览器或保存在服务器中
创建画布:
绘制图像:
输出图像:输出到浏览器前一定要调用header()发送content-type通知浏览器
释放资源:
文件操作:
disk_free_space() disk_total_space()用于统计磁盘大小,计算目录的大小系统没有函数,需要自己编写函数
mkdir()创建目录 rmdir()删除空目录,其必须是空目录,而且必须存在,若不是空目录,需要进入子目录,用unlink()删除文件
copy()复制文件,其不能复制目录中的文件,所以如果要复制目录,需要先创建目录,然后递归复制文件
数据库:
数据库引擎:MyISAM,InnoDB HEAP BOB ARCHIVE CVS
MyISAM:它使用一种表锁定的机制来优化多个并发的读写操作。其代价是经常运行OPTIMIZE table命令。
InnoDB:提供了具有提交、回滚和崩溃回复能力的事务安全存储引擎,其也支持外键机制。其占用的空间大。
功能: MyISAM InnoDB
事务处理 不支持 支持
数据锁定 不支持,只有表锁定 支持
外键约束 不支持 支持
表空间 相对小 相对大
全文搜索 支持 不支持
count 无 执行count查询时,速度慢
索引:主键索引 唯一索引 常规索引 全文索引
全文索引用fulltext创建,其只用于myisam引擎。select book_name where match(detail) againest('hello')
mysql_fetch_row()将一条结果记录返回并以一个普通索引数组的形式保存
mysql_fetch_assc()将一个结果记录返回并以一个普通关联数组的形式保存
mysql_fetch_array()根据传入不通的参数返回不通的数组。MYSQL_ASSOC MYSQL_NUM MYSQL_BOTH(默认)
会话控制:
cookie:setCookie()来新建一个cookie。cookie是HTTP头信息的一部分,因此必须在其他信息被
输出前调用,即使是空格或空行都不要在setcookie函数之前输出,这和调用header()函数的限制类似。
bool setcookie(name,value,expire,path,domain,secure)
cookie也可以利用多维数组的形式,将多个内容值存在相同cookie名称标识符下,但不能直接使用
setcookie函数,将数组变量插入到第二个参数作为cookie的值。因为setcookie()函数的第二个参数
必须传一个字符。
删除cookie:setcookie(name),另一种是设置cookie为已过期
session:在客户端仅需要保存由服务器为用户创建的一个session标识符,成为session ID,而在服务器端
保存session变量的值。session ID是一个既不会重复,也不容易找到规律的由32位16进制数组成的字符串
session会在下面两种状况下自然消失:
当使用者关闭浏览器,失去与服务器之间的链接之后,session即回自动消失,而当使用者下次登录
网站时,在另行配置一个session使用
session指定有效期限到期。session.cookie.lift_time设定session的有效期限,以秒为单位指定了发送
到浏览器的cookie的生命周期。sessionID是存储到cookie中。
session.auto_start:自动启动会话 0:禁止 1:开启
session.cache_expire:为缓存中的会话也设置当前时间,单位分钟
session.cookie_domain:指定会话cookie中的域
session.cookie_lefttime:cookie中的sessionID在客户机上保存的时间。0表示延续到浏览器关闭
session.cookie_path
session.name:会话的名称,在客户端用做cookie的标志名称 PHPSESSID
session.save_path:会话在服务器存储的路径
session.use_cookies:配置在客户端使用cookie的会话,1表示允许
session_destory()结束当前的会话,并清空会话中的所有资源。但该函数并不会释放和当前session
相关的变量,也不会删除保存在客户端cookie中的sessionID。使用unset函数来释放在session中
注册的单个变量
在使用Linux系统做服务器时,如果使用了--enable-trans-sid配置选项,和运行时选项session.use_trans_sid
都被激活,在客户端禁用cookie时,相对于URL将被自动修改为包含会话ID。如果没有这么配置,或
使用window系统作为服务器时,可以使用常量SID
模板引擎:
模板中的注释:{**}之间的都是注释内容那个,可以包括一行或多行,并不会在用户浏览页面源代码时查看到。
索引数组和关联数组在模板中输出方式略有不同,其中索引数组在模板中的访问和php脚本中的引用方式一样
而关联数组中的元素在模板中的指定方式是使用句号.访问的
在模板中访问对象和直接在php脚本中访问的方式类似,都是通过->运算符完成的。
模板中可以识别嵌入在双引号中的变量,此变量必须使用``包住
模板中的保留变量可以再模板中直接使用:
在模板中访问页面请求变量,例如{$smarty.get.page}
在模板中访问PHP中的常量,例如{$smarty.const.__FILE__}
truncate(string,length,bool)截取单字节的字符串,中文的无法截取
缓存:
开启缓存:$smarty->caching=true;$smarty->cache_dir="./cache";
$smarty->cache_lifetime=3600;//设置缓存时间
处理开销:是指在PHP脚本中动态获取数据和处理操作等的开销。
php中的数组分为索引数组和关联数组
索引数组的索引值是整数,与其他语言类似。关联数组的索引值是字符串,与其他语言不通。
each():参数是一个数组,可以讲数组从第一个开始分解,返回的是一个数组,$arr=each(array("a"=>"b"));并将所以
向下移动,若最后没有则返回false,$arr=array(0=>"a",'key'=>'a',1=>'b','value'=>'b');
list()只能用于索引数组,关联数组无法使用。list($a,$b)=>array(a,b,'a'=>'a');最后$a=a,$b=b;
数组的便利除了foreach()还可以使用while(list($key,$value)=each($arr)){echo $key.'=>'$value;}
current($arr):返回的是数组中当前索引中的值
key($arr):返回当前数组的索引
next($arr):向下移动索引
prev():
end();
reset():
$_SERVER是一个包含诸如头信息、路径和脚本位置的数组,数组的实体由web服务器创建。
$_ENV:环境变量,数组中的内容是在php解析器运行时,从php所在服务器中的环境转换为php全局变量。
array_values()
array_keys($array,search_value,bool strict)
in_array(nel,array,bool)最后一个参数的含义是参数匹配的类型是否严格。
array_search()对数组值进行检索。
array_key_exists()给定的减值是否存在数组中。
array_flip()的作用是交换数组中的键与值,返回一个反转后的数组
array_reverse()的作用是将原数组中的元素顺序翻转,即最后一个键值对放在第一。
count(array,bool)bool的可以为0或1,作用是是否计算字数组
array_count_values()返回一个一维数组,其数组的键名是原数组的值,键值是该值在原数组中出现的次数
array_unique()作用是现将键值排序,然后相同的值留第一个遇到的值,接着忽略所有后面的键名。
array_filter(array,callback)对函数进行过滤
array_walk(array,callback,userdata)对数组中的每个元素应用回调函数处理。如果成功返回TRUE,失败返回FALSE。
array_map(callback,array...)
sort() rsort数组排序
ksort() krsort()根据键进行排序
asort arsort()根据值进行排序,其与sort()的不同是sort将忽略键,asort将保留键值关系
usort() uasort() uksort()可以通过自己创建的比较函数作为回调函数进行排序
array_slice(array,offset,length,bool)取数组中的一部分
array_splice(array,offset,length,replacement)若第四个参数无,则是从offset开始,移除length元素,若有,则是被移除的元素由此数组中
的元素所替代。如果没有移除任何值,则此数组中的元素将插入到指定位置。
array_combine()作用是通过合并两个数组来创建一个新数组。其中的一个数组是键名,另一个数组的值为键值。如果其中的一个数组为空,或者两个
数组的元素个数不通,则该函数返回FALSE。
array_merge()作用是把一个或多个数组合并为一个数组。如果键名有重复,该键的键值为最后一个键名对应的值。如果数组是数子索引的,则键名
会以连续方式重新索引。如果仅仅输入一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以0开始进行重新索引。
数组的连接也可以使用+,但是若键名相同时则保留前边出现的,这与array_merge相反
array_intersect()作用是计算数组的交集。键名不变,仅用值比较
array_diff()作用是计算数组的差集,键名不变,仅用值比较
array_rand(input,num_req)从数组中随机选出一个或多个元素,并返回。
shuffle()将数组的顺序打乱。
array_sum()返回数组中所有值得总和。
array_fill(start,num,str)键从start其开始,长度有num填充str,若start是负值,则第二个索引值从0开始其实递增
字符串的查找:
preg_match(patten,string,matches)字符串正则匹配。matches中的第一个是整体匹配,后边的是正则中的子模式匹配
preg_match_all(patten,string,matches,flag)与上一类似,其回匹配所有的,matches是二维数组。flag可以设置matches子模式匹配的顺序
preg_grep(patten,input)input是一要匹配的数组,其返回的是匹配的数组
strstr() stristr()从匹配开始到最后的字符串
strrpos() strpos() stripos() strrpos()返回字符串的位置
substr()取字符串
preg_replace()
str_replace str_ireplace
ini_set()可以设置php的错误级别
error_reporting()设置错误级别
ini_set('display_errors',1);//开启
error_reporting(E_ALL);
mktime(hour,minute,second,mouth,day,year)转换成时间戳,而且可以对时间进行校验
getdate()
设置时间时区date.timezone=Etc/GMT-8或date_default_timezone_set('PRC')
microtime(bool)返回的微秒
图片的操作:
在php中通过GD库处理图像的操作,都是现在内存中处理,操作完成后再以文件流的方式输出到浏览器或保存在服务器中
创建画布:
绘制图像:
输出图像:输出到浏览器前一定要调用header()发送content-type通知浏览器
释放资源:
文件操作:
disk_free_space() disk_total_space()用于统计磁盘大小,计算目录的大小系统没有函数,需要自己编写函数
mkdir()创建目录 rmdir()删除空目录,其必须是空目录,而且必须存在,若不是空目录,需要进入子目录,用unlink()删除文件
copy()复制文件,其不能复制目录中的文件,所以如果要复制目录,需要先创建目录,然后递归复制文件
数据库:
数据库引擎:MyISAM,InnoDB HEAP BOB ARCHIVE CVS
MyISAM:它使用一种表锁定的机制来优化多个并发的读写操作。其代价是经常运行OPTIMIZE table命令。
InnoDB:提供了具有提交、回滚和崩溃回复能力的事务安全存储引擎,其也支持外键机制。其占用的空间大。
功能: MyISAM InnoDB
事务处理 不支持 支持
数据锁定 不支持,只有表锁定 支持
外键约束 不支持 支持
表空间 相对小 相对大
全文搜索 支持 不支持
count 无 执行count查询时,速度慢
索引:主键索引 唯一索引 常规索引 全文索引
全文索引用fulltext创建,其只用于myisam引擎。select book_name where match(detail) againest('hello')
mysql_fetch_row()将一条结果记录返回并以一个普通索引数组的形式保存
mysql_fetch_assc()将一个结果记录返回并以一个普通关联数组的形式保存
mysql_fetch_array()根据传入不通的参数返回不通的数组。MYSQL_ASSOC MYSQL_NUM MYSQL_BOTH(默认)
会话控制:
cookie:setCookie()来新建一个cookie。cookie是HTTP头信息的一部分,因此必须在其他信息被
输出前调用,即使是空格或空行都不要在setcookie函数之前输出,这和调用header()函数的限制类似。
bool setcookie(name,value,expire,path,domain,secure)
cookie也可以利用多维数组的形式,将多个内容值存在相同cookie名称标识符下,但不能直接使用
setcookie函数,将数组变量插入到第二个参数作为cookie的值。因为setcookie()函数的第二个参数
必须传一个字符。
删除cookie:setcookie(name),另一种是设置cookie为已过期
session:在客户端仅需要保存由服务器为用户创建的一个session标识符,成为session ID,而在服务器端
保存session变量的值。session ID是一个既不会重复,也不容易找到规律的由32位16进制数组成的字符串
session会在下面两种状况下自然消失:
当使用者关闭浏览器,失去与服务器之间的链接之后,session即回自动消失,而当使用者下次登录
网站时,在另行配置一个session使用
session指定有效期限到期。session.cookie.lift_time设定session的有效期限,以秒为单位指定了发送
到浏览器的cookie的生命周期。sessionID是存储到cookie中。
session.auto_start:自动启动会话 0:禁止 1:开启
session.cache_expire:为缓存中的会话也设置当前时间,单位分钟
session.cookie_domain:指定会话cookie中的域
session.cookie_lefttime:cookie中的sessionID在客户机上保存的时间。0表示延续到浏览器关闭
session.cookie_path
session.name:会话的名称,在客户端用做cookie的标志名称 PHPSESSID
session.save_path:会话在服务器存储的路径
session.use_cookies:配置在客户端使用cookie的会话,1表示允许
session_destory()结束当前的会话,并清空会话中的所有资源。但该函数并不会释放和当前session
相关的变量,也不会删除保存在客户端cookie中的sessionID。使用unset函数来释放在session中
注册的单个变量
在使用Linux系统做服务器时,如果使用了--enable-trans-sid配置选项,和运行时选项session.use_trans_sid
都被激活,在客户端禁用cookie时,相对于URL将被自动修改为包含会话ID。如果没有这么配置,或
使用window系统作为服务器时,可以使用常量SID
模板引擎:
模板中的注释:{**}之间的都是注释内容那个,可以包括一行或多行,并不会在用户浏览页面源代码时查看到。
索引数组和关联数组在模板中输出方式略有不同,其中索引数组在模板中的访问和php脚本中的引用方式一样
而关联数组中的元素在模板中的指定方式是使用句号.访问的
在模板中访问对象和直接在php脚本中访问的方式类似,都是通过->运算符完成的。
模板中可以识别嵌入在双引号中的变量,此变量必须使用``包住
模板中的保留变量可以再模板中直接使用:
在模板中访问页面请求变量,例如{$smarty.get.page}
在模板中访问PHP中的常量,例如{$smarty.const.__FILE__}
truncate(string,length,bool)截取单字节的字符串,中文的无法截取
缓存:
开启缓存:$smarty->caching=true;$smarty->cache_dir="./cache";
$smarty->cache_lifetime=3600;//设置缓存时间
处理开销:是指在PHP脚本中动态获取数据和处理操作等的开销。