php内置函数

本文介绍了PHP中常用的字符串和数组操作函数,包括字符串长度获取、大小写转换、替换、截取等,以及数组的创建、排序、合并、拆分等操作,并提供了丰富的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串函数

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'));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值