字符串函数
strlen($str) 返回字符串长度
strtolower($str) 把字符串转换为小写
strtoupper($str) 把字符串转换为大写
str_replace ($find,$replace,$str) (在string中用replace替换find)
str_ireplace ($find,$replace,$str) 大小写不敏感
strpos($str, $find, $start) 在str中从start开始查找find,返回find首次出现的位置,start为开始搜索的位置,find为要查找的字串
stripos($str,$find,$start) 大小写不敏感
substr($str,$start,$length) 返回字符串的一部分
strstr($str,$search) 返回search在string中第一次出现的位置后面的部分
str_repeat($string,$repeat) 将string重复输出repeat次
strrev(string) 反转字符串
strcmp(str1,str2) 比较两个字符串,相等返回0
strcasecmp(str1,str2) 比较两个字符串,大小写不敏感
ucfirst(string) 把字符串的首字符转换为大写
ucwords(string) 把字符串中每个单词的首字符转为大写
trim(string,char) 删除字符串两端的空白、回车、\t、\0等字符和其他预定义字符
rtrim(string,char) 删除字符串右端的空白、回车、\t、\0等字符和其他预定义字符
chop(string,char) 同rtrim(string,char)
addslashes(string) 对字符串进行转义,即在string的预定义字符前加反斜杠
md5(string) 计算字符串md5散列
md5_file(filename) 计算文件md5散列
explode(separator,string) 字符串转为数组
implode(separator,array) 数组转为字符串
join(separator,array) 数组转为字符串,同implode
printf(format,arg1,arg2) 输出格式化的字符串
数组函数
元素的存在
in_array($value,$arr,$type); 判断数组里是否有该值。(type可选,如果为true则检查value与数组值的类型是否相同)
array_key_exists($key,$arr); 判断数组里是否有该键名
数组和字串转换
explode(separator,string); string拆分成数组。
implode(separator,array); 数组元素连接成字符串。
list($v1,$v2) = explode(',',$str); 给一组变量赋值。
入数组
array_push(array,value); 从尾部插入数组
array_unshift(array,value1,value2...); 从头部插入数组
array_splice(array,start,length,replace) 取代数组中的一部分
出数组
array_pop($arr); 从数组尾取一个元素。
array_shift($arr); 从数组头取一个元素。
array_slice($arr,$start,$length); 取出一段数组。
array_rand($arr,$int); 随机取int个元素。
查询
array_search($value,$arr); 在数组中搜索指定的值,返回相应的键名。
array_column($arr,$field) 返回输入数组中某个单一列的值。
array_keys($arr); 返回数组所有的键名。
array_values($arr); 返回数组所有的值。
排序
sort(array); 对数组升序排序 ,键值不参与排序,即不保持索引关系。
rsort(array); 对数组降序排序,键值不参与排序,即不保持索引关系。
asort(array); 对数组中的值进行升序排序,保持索引关联。
arsort(array); 对数组中的值进行降序排序,保持索引关联。
ksort(array); 对数组按键名排序。
krsort(array); 对数组按键名逆向排序。
usort(array,"my_func_name"); 自定义排序。
array_multisort(); 多维数组排序。
代码示例:
$create_time[] = $r['create_time'];
array_multisort($create_time,SORT_REGULAR,SORT_DESC,$result['data']);
array_reverse($arr); 返回顺序相反的数组。
shuffle(array); 打乱数组。
去重
array_unique(array); 去重
array_flip(array); 交换键与值
$a=array(0=>"Dog",1=>"Cat",2=>"Horse");
print_r(array_flip($a));
Array ( [Dog] => 0 [Cat] => 1 [Horse] => 2 )
数组拆分
array_chunk(array,size,preserve_key) 将数组拆分为新数组,preserve_key表示是否保留键名
例子:
$a = array('a'=>'cat','b'=>'dog','c'=>'horse','d'=>'pig');
$b = array_chunk($a,2,true);
var_dump($b);
Array(
[0]=>array([a]=>'cat',[b]=>'dog'),
[2]=>array([c]=>'horse',[d]=>'pig')
)
数组合并
array_merge(array1,array2,array3...)
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge($a1,$a2));
Array ( [a] => Horse [b] => Cat [c] => Cow )
array_combine(array1,array2) 合并两个数组,其中array1的元素作为键名,array2的元素作为值。
$a = array('a','b','c','d');
$b = array('cat','dog','horse','pig');
$c = array_combine($a,$b);
var_dump($c);
Array([a]=>cat,[b]=>dog,[c]=>horse,[d]=>pig)
差集
array_diff(array1,array2)
$a1=array(0=>"Cat",1=>"Dog",2=>"Horse");
$a2=array(3=>"Horse",4=>"Dog",5=>"Fish");
print_r(array_diff($a1,$a2));
Array ( [0] => Cat )
交集
array_intersect(array1,array2)
$a1=array(0=>"Cat",1=>"Dog",2=>"Horse");
$a2=array(3=>"Horse",4=>"Dog",5=>"Fish");
print_r(array_intersect($a1,$a2));
Array ( [1] => Dog [2] => Horse )
元素求和
array_sum(array)
例子
$a=array(0=>"5",1=>"15",2=>"25");
echo array_sum($a);
元素乘积
array_product(array)
例子
$a=array(5,5);
echo(array_product($a));
统计值出现的次数
array_count_values()
$a=array("Cat","Dog","Horse","Dog");
print_r(array_count_values($a));
Array ( [Cat] => 1 [Dog] => 2 [Horse] => 1 )
指针移动
current() 返回数组中的当前元素。
next() 将数组中的内部指针向前移动一位。
prev() 将数组的内部指针倒回一位。
reset() 将数组的内部指针指向第一个元素。
创建数组
array()
range(first,second,step) (step:规定元素之间的步进制)
例子
$number = range(0,5);
print_r ($number);
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
)
$number = range(0,50,10);
print_r ($number);
Array
(
[0] => 0
[1] => 10
[2] => 20
[3] => 30
[4] => 40
[5] => 50
)
文件函数
file_exists($path) 检查文件是否存在
is_file(filename) 判断是否是文件
is_dir(directory) 判断是否是目录
is_readable(filename) 判断是否可读
is_writeable(filename) 判断是否可写
fopen(filename,type) 打开文件,type:r、w
fclose(filename) 关闭文件
file_get_contents($filename) 读文件
file_put_contents($filename,$content) 写文件
feof(filename) 检测是否达到文件末尾
fgets($filename) 返回一行
fputs($fp,$str) 写入一行
fread(filename,length) 读取文件内容,需要与fopen和fclose配合使用
fwrite(filename) 写入文件,需要与fopen和fclose配合使用
filesize(filename) 返回文件大小
filetype(filename) 返回文件类型
fileowner(filename) 返回文件的所有者
fileatime(filename) 返回文件上次访问的时间
filemtime(filename) 返回文件上次修改的时间
unlink(filename) 删除文件
file($filename) 把文件读入数组
chmod(file,mode) 改变文件权限
opendir($dir) //类似fopen
readdir($dir_handle)
dirname($path) 返回目录名
disk_free_space(directory) 返回目录中的可用空间(字节数)
disk_total_space(directory) 返回目录的总容量(字节数)
【遍历目录下的目录和文件】
function iterate_dir($path){
if(is_dir($path)){
$op = opendir($path);
while(false != ($item = readdir($op))){
if($item =='.' || $item =='..'){
continue;
}
$res = $path.'/'.$item;
if(is_dir($item){
echo 'dir: '.$res;
iterate_dir($res); //遍历
}else{
echo 'file: '.$res;
}
}
}
}
日期函数
今天:date('Y-m-d')
昨天:date('Y-m-d',strtotime('-1 day'))
前天:date('Y-m-d',strtotime('-2 day'))
明天:date('Y-m-d',strtotime('1 day'))
后天:date('Y-m-d',strtotime('2 day'))
当月:date('Y-m')
上月:date('Y-m',strtotime('-1 month'))
下月:date('Y-m',strtotime('1 month'))
某天的前一天:date('Y-m-d',strtotime($date)-24*60*60);
今天星期几:date('l'); 或 date('w');
本月多少天:date('t');
date('Y-m-d H:i:s',time())
Y: 4位的年号.
y :2位的年号.
F :月份的英文全称.
M :月份的英文简称.
m :月份数.
z :从当年1月1日以来的天数.
d :日数.
l :星期几的英文全称.
D :星期几的英文简称.
w :星期几(数字).
H :小时数(24小时制).
h :小时数(12小时制).
i :分钟数.
s :秒数.
A :"AM"或"PM".
a :"am"或"pm".
S :序数字后缀,例如:"st","nd","rd","th".
echo date('Y-m-d'); //带零
2017-03-05
echo date('Y-n-j'); //不带零
2017-3-5
前一个月
date('Y-n-j',strtotime('-1 month'));