1、数组
定义数组 | $arr=array(); |
数组赋值 | $arr[i]=v; $arr=array(‘key’=>v);//定义键值key对应的值为v $arr=array(v1,v2) |
循环访问数组 | foreach($arr as $key=>$value){} |
2、字符串
去除两侧/左/右空格 | trim/ltrim/rtrim($str) |
获取字符串长度 | strlen($str) mb_strlen($str)(中文字符串) |
截取子字符串 | substr($str,[start,]end) |
查找子字符串 | strops($str,$sub[,start]) |
替换子字符串 | str_replace(old,new,$str[,start]) |
格式化字符串 | sprintf(fomat,$str)* |
分割字符串为数组 | explode(分隔符,$str) |
数组合并为字符串 | Implode(连接符,arr) |
注: 字符串的格式例如:'%08.3f',其中%代表格式开始,f结尾,8代表一共长度是八位数(小数点算一位),如果不够八位用0填补,.3代表小数点后有三位。
3、正则表达式
preg_match(表达式,$str)返回是否匹配,preg_match(表达式,$str,$match_arr),匹配结果传给match_arr数组,match_arr[0]是整个匹配字符,match_arr[1]是字符()中的第一个匹配的子字符串。Preg_match()只返回第一个匹配到的结果,如果需要匹配全部,用preg_match_all()。
正则表达式以/、#、~开头结尾,匹配字符串中复合格式的字符,如果表达式中含有特殊符号需要使用\进行转义。
关于匹配的长度,+代表贪婪模式,尽可能多匹配,?代表懒惰模式,匹配最少,如果需要规定长度可用{长度}来指定。例如0351-7410852,/\d+\-\d+/,就会都匹配,/\d?\-\d?/就只有匹配1-7。
Preg_replace(匹配,格式,$str),匹配替换字符串格式。例如将其中文件名以斜体输出:
<?php
$str = '主要有以下几个文件:index.php, style.css, common.js';
$pattern = '/(\w+.\w+), (\w+.\w+), (\w+.\w+)/';
$replace ='<em>$1</em>,<em>$2</em>,<em>$3</em>';
echo preg_replace($pattern,$replace,$str);
其中$1代表第一个括号匹配的结果,以此类推。
4、Cookie与Session
Setcookie函数用于设置cookie,setcookie具有7个可选参数常用到的为前5个:
name( Cookie名)可以通过$_COOKIE['name'] 进行访问
value(Cookie的值)
expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效
path(有效路径)如果路径设置为'/',则整个网站都有效
domain(有效域)默认整个域名都有效
例如:setcookie("TestCookie",$value, time()+3600, "/path/", "domin")。
删除cookie也是采用setcookie函数来实现,将cookie的过期时间设置到当前时间之前即可setcookie('test', '',time()-1);
由于cookie安全与存储大小等限制,php中使用session存储用户数据,使用session:
//开启session
session_start();
//通过全局变量$_SESSION设置或读取session
$_SESSION['name']=value;
//删除session用函数
unset($_SESSION['name']);
5、文件读写
$str=file_get_contents(filename) | 将文件内容读取到一个字符串中 |
$fp=fopen (‘文件’,’打开方式’) | 打开文件流 |
fgets($fp) | 从文件指针中读取一行 |
freads($fp,长度) | 读取文件指定长度的字符串 |
file_exists(file) | 判断文件是否存在 |
filesize(file) | 返回文件大小 |
filemtime(file) | 文件修改时间 |
file_put_contents(file,content) | 将content内容输入到文件 |
6、时间函数
time() | 返回一个时间戳 |
date(‘format’[,time]) | 返回日期或将时间戳转换为日期* |
strtotime(时间) | 返回指定时间的时间戳 |
Gmtime(‘format’ [,time]) | 返回格林尼治的时间GMT-0 |
注:时间戳指的是从1970/1/1至今经过的秒数,format指定日期输出格式,y代表‘年’,m‘月’,d‘日’,h’时’,i’分’,s’秒’例如date(‘m-d/y’)输出:02-18/2017。
7、GD图像
$img=imagetruecolor(x,y) | 创建并返回大小为x,y的图像资源 |
$color=imagecolorallocate($img,R,G,B) | 为图像分配RGB颜色 |
Imageline($img,起点x,y,终点x,y,$color) | 画一条直线 |
header("content-type: image/png") | 设置图像输出格式 |
imagepng($img[,filename][,quality]) | 以png格式输出图像资源,或者输出到文件 |
imagedestroy($img) | 释放图片内存 |
Imagestring($img,font-size,x,y,string,$color) | 绘制文字 |
Imagesetpixel($img,x,y,$color) | 画一个点 |
Imagecopy($des,$src,dx,dy,sx,sy,sw,sh) | 将源图src从sx,sy开始宽sw,高sh的部分拷贝到des的dx,dy位置 |
$img=imagecreatefrompng(filename) | 从文件创建图像 |
8、数据库
$link=mysql_connect($host,$user, $pass[,$database]) | 连接数据库 |
mysql_select_db() | 选择数据库 |
$res=mysql_query() | 执行mysql语句,返回结果 |
$row=mysql_fetch_row($res) | 从结果集中选区一行(数字索引) |
$row=mysql_fetch_assoc($res) | 选区一行(关键字索引) |
mysql_close($link) | 关闭数据库连接 |