PHP学习笔记

来源:互联网 发布:钢铁雄心4mac汉化包 编辑:程序博客网 时间:2024/05/22 00:11
  数组:
  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脚本中动态获取数据和处理操作等的开销。
  
  
    
  
  
0 0
原创粉丝点击