PHP 常用内置函数

最后更新:
阅读次数:

完整的 PHP 函数参考列表点这里~

操作数组

  • array array_column($arr, key): 返回一个由给定的多维数组中指定键所在列的值组成的数组(可能用于从数据库返回的表中提取数据
<?php
$arr = [
['a','b','c'],
[1,2,3],
[111,222,333]
];
$key = 1;
print_r(array_column($arr, $key));
// Array
// (
// [0] => b
// [1] => 2
// [2] => 222
// )
?>
  • array array_combine($keys,$values): 合并两个数组(这两个数组长度必须一样),一个为键,一个为值

  • array array_count_values($arr): 返回一个关联数组,键为指定数组的值,值为在指定数组中出现的次数

  • array array_filter($array,callback): 利用回调函数过滤掉数组中的某些元素,返回过滤后的数组

<?php
$a = [1,2,3,4,5,6,7];
function even($x)
{
return $x % 2 == 0;
}
print_r(array_filter($a, even));
?>
  • bool array_key_exists(key,$array): 检查某个键是否存在

  • array array_keys($array): 返回数组中的所有键

  • array array_values($array): 返回数组中的所有值

  • array array_map(callback, $array): 为数组的每个元素应用回调函数

  • mixed array_pop($array): 去除数组的最后一个元素(出栈),正常情况下返回 array 的最后一个值,若数组为空,返回 NULL

  • int array_push($array, value1,value2 …): 将一个或多个元素压入数组的末尾(入栈)

  • mixed array_shift($array): 将数组开头的单元移出数组。返回移出的值,如果 array 为 空或不是一个数组则返回 NULL

  • int array_unshift($array, value1,value2 …): 在数组开头插入一个或多个单元

  • int count($array): 返回数组中的元素个数

操作字符串

  • array explode($flag, $string): 将一个字符串以某个字符或字符串为标记,分割成一个数组
explode(".","1.22.aa");   // ['1','22','aa']
  • string join($flag,$array): 将一个一维数组的值通过某个字符或字符串转化为一个新的字符串
    • implode 方法是 join 方法的别名
$arr = ['aa','bb'=>22,33,'asd'];
print_r(join('@', $arr)); // aa@22@33@asd
print_r(implode('@', $arr)); // aa@22@33@asd
  • mixed str_replace($search, $replace, $string): 子字符串替换,返回替换后的字符串或数组(注意,这个函数不支持正则表达式替换
    • str_ireplace 函数是 str_replace 函数的忽略大小写的版本
// 字符串替换
str_replace('l', 'L', 'hello world'); // heLLo worLd

// 数组替换
str_replace('l', 'L', ['hello','lol']); // ['heLLo','LoL']
  • int strlen($string): 返回字符串的长度

  • string strrev($string): 反转字符串

  • mixed strpos($string, $flag): 返回指定字符或字符串在原字符串中首次出现的位置,若未出现,返回 FALSE

  • int substr_count($string, $flag): 返回指定字符或字符串在原字符串中出现的次数,若未出现,返回 0

  • string strtolower($string): 将字符串转换为小写

  • string strtoupper($string): 将字符串转换为大写

  • string trim($string): 去除字符串首尾处的空白字符(空白字符对应正则表达式中的 \s 字符)

网络相关

  • void header($string): 用于发送原生的 HTTP 头

  • void header_remove([$name]): 删除指定的或全部的之前用 header 函数设置好的 HTTP 头

  • bool setcookie($name, $value …): 发送服务器上定义好的 Cookie

JSON 相关

  • mixed json_decode($json_string[, $assoc]): 对 JSON 格式的字符串进行解码,即将 JSON 格式的字符串转换为 PHP 变量,根据第二个参数来决定转换为数组还是对象

  • string json_encode(mixed $value[, $options]): 对变量进行 JSON 编码,即将 PHP 变量转换为 JSON 格式的字符串

// 第二个参数不知道有啥用
// 只知道将第二个参数设置为 256 时,变量内的中文字符能正常显示

$arr = ['aa','bb'=>123,'你好'];
json_encode($arr); // {"0":"aa","bb":123,"1":"\u4f60\u597d"}
json_encode($arr, 256); // {"0":"aa","bb":123,"1":"你好"}

正则表达式相关

  • mixed preg_replace($pattern, $replace,$string): 执行一个正则表达式的搜索和替换
$str = "   122.34.aa  \n";
print_r($str); // ' 122.34.aa '
print_r(preg_replace("/\s/", '', $str)); // '122.34.aa'
  • int preg_match($pattern, $string): 执行一次正则表达式匹配,返回匹配到的次数(0 次或 1 次)

  • int preg_match_all($pattern, $string): 执行一次全局的正则表达式匹配,返回匹配到的次数(0 次、1 次、多次)

$str = "   122.34.aa  \n";
print_r(preg_match("/\s/", $str)); // 1
print_r(preg_match_all("/\s/", $str)); // 6
  • array preg_split($pattern, $string): 通过一个正则表达式将字符串分隔为一个数组
$str = "122a34.z.e  \n";

print_r(preg_split("/[a-z]/", $str));
// ['122','34.','.',' \n']

文件操作

  • string basename($path): 返回路径中的文件名部分

  • string dirname($path): 返回路径中的目录部分

  • bool copy($path1, $path2): 将文件从 path1 拷贝到 path2

  • bool file_exists($path): 检查文件或目录是否存在

  • bool unlink($path): 删除指定的文件

  • int filesize($path): 返回指定文件的大小(字节数)

  • string filetype($path): 返回文件类型,文件类型可能的值有 fifo,char,dir,block,link,file 和 unknown

  • bool move_uploaded_file($filename, $target): 将上传的文件移动到新位置,本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)

文件读写

  • resource fopen($path, $mode): 打开文件或者 URL

  • string fgetc($file): 从文件从读取一个字符

  • string fgets($file): 从文件指针中读取一行

  • string fread($file, int $length): 读取文件(可安全用于二进制文件)

  • int fwrite($file,$data): 写入文件(可安全用于二进制文件)

  • bool fflush($file): 将缓冲内容输出到文件,而不用等待到关闭文件时再把缓存输入文件

  • bool feof($file): 测试文件指针是否到了文件结束的位置

  • bool fclose($file): 关闭一个已打开的文件指针

  • string file_get_contents($path): 将整个文件读入到字符串中

  • int file_put_contents($path, $data): 将指定数据写入到文件中

恩,我真的只是总结了一小部分内置函数,真的是一小部分~