类/对象方法:
魔术方法 | ||
---|---|---|
__call($func_name, $args) 调用对象不存在方法 | __callStatic($func_name, $args) 调用不存在静态方法(静态方法) | __set($key, $value) 设置属性 |
__get($key) 获取不存在属性 | __construct() | __distruct() |
__clone() 克隆时调用 | __invoke() 把对象当成方法调用时 | __unset($key) unset对象不存在说无法访问属性调用 |
__isset() 使用isset、empty时调用(注意:empty判断时结果是返回值的反向) |
相关函数 | |
---|---|
call_user_func_array([函数名称|数组形式]) 调用自定义函数 | method_exists([对象变量],[函数名称]) 判断对象方法是否存在 |
function_exists([函数名称]) 函数是否存在 |
数组:
数组函数 | ||
---|---|---|
array_pop(&$x),array_shift(&$x), | array_unshift(&$x, “a”, “b”), | array_push(&$x, “a”, “b”), |
in_array(“a”, [“a”]) // 返回真假 | array_merge($x, $y) | array_reverse($x) |
array_splice($x, 0, 1, “A”) | array_search(“a”, $x) // 返回索引注意判断全等于 | array_map(function($value){}, $x) |
array_values($x) | array_keys($x) | array_walk($x, function(&$value,$key){}) |
内置数组 | ||
---|---|---|
$_SESSION | $_COOKIE | $_FILE |
$_SERVER | $_GET | $_POST |
$GLOBALS | ||
$_SERVER | $_GET | $_POST |
数组遍历: | array_map()、array_walk()、list()、for、foreach | - |
字符串:
转义 | |
---|---|
addslashes($str) 转义 | stripslashes($str) 取消转义 |
编码 | ||
---|---|---|
mb_convert_encoding(string, to_code, from_code) | serialize() unserialize() | json_encode() json_decode() |
base64_encode() base64_decode() | ||
strrev() 翻转 | strlen() 字符串字节数,中文占3个 | mb_strlen() 支持中文也占1个 |
gethostbyname(“www.baidu.com”) | ||
获取域名IP地址 | 不用第三个变量互换值 | |
list($x, y ) = [ y) = [ y)=[y , $x]; | explode(",", $x) implode("," , $x) | |
explode(",", $x) implode("," , $x) | ||
互转 | substr_count(string, need) | |
统计字符串出现次数 | trim() rtrim() ltrim() | |
substr($str, 0, 1) // 截取字符串 | strpos($str, $need) // 字符出现位置 | |
str_replace($need, $replace, $str) | grep_replace("/w{1,3}/", “###$1”, $str) | strstr($str, “8”) // 返回该字符串后所有字符 |
时间:
date() | time() | strtotime() |
mktime(h,i,s,m,d,y) |
天开始结束 |
---|
$now = strtotime(“2021-04-02”); echo date(“Y-m-d H:i:s”, mktime(0,0,0,date(‘m’), date(‘d’), date(‘y’))) , PHP_EOL; echo date(“Y-m-d H:i:s”, mktime(0,0,0,date(‘m’), date(‘d’)+1, date(‘y’)) -1) , PHP_EOL; |
月开始结束 |
---|
echo date(“Y-m-d H:i:s”, mktime(0,0,0,date(‘m’), 1, date(‘y’))) , PHP_EOL; echo date(“Y-m-d H:i:s”, mktime(0,0,0,date(‘m’)+1,1, date(‘y’)) -1) , PHP_EOL; |
年开始结束 |
---|
echo date(“Y-m-d H:i:s”, mktime(0,0,0,1, 1, date(‘y’))) , PHP_EOL; echo date(“Y-m-d H:i:s”, mktime(0,0,0,1,1, date(‘y’)+1) -1) , PHP_EOL; |
周开始结束 |
---|
$week = date(‘w’) ? date(‘w’, $now)-1 : 7-1;$diff = 7 - date(‘w’, $now); echo date(“Y-m-d H:i:s”, mktime(0,0,0,date(‘m’,$now), date(‘d’,$now)-$week, date(‘y’,$now))) , PHP_EOL; echo date(“Y-m-d H:i:s”, mktime(0,0,0,date(‘m’,$now), date(‘d’,$now)+$diff, date(‘y’,$now))) , PHP_EOL; |
文件:
方式一:
$handle = fopen('./test', r | w);
//fwrite($handle, 1000);
$contents = fread($handle, 100);
echo $contents;
fclose($handle);
方式二:
file_put_contents([filename], [contents]);
file_get_contents([filename]);
文件操作函数
scandir([dirpath]) 目录内容列表
chmod([filenname], 0777)
mkdir([dirpath]); 创建目录
unlink([filepath]) 删除文件
is_dir([dirpath]) 是否存在目录
file_exists([filepath]) 是否存子文件
copy([origin_path], [new_path]) 复制文件
锁定文件:
$file = fopen("test.txt","w+");
if (flock($file,LOCK_EX)){
fwrite($file,"Write something");
flock($file,LOCK_UN);
}else{
echo "Error locking file!";
}
fclose($file);
排序算法:
// 选择算法
function selectSort($arr)
{
static $result = [];
$rodKey = 0;
$rodVal = $arr[$rodKey];
for ($i = 0; $i < count($arr); $i++) {
if ($arr[$i] > $rodVal) {
list($rodKey, $rodVal) = [$i, $arr[$i]];
}
}
array_splice($arr, $rodKey, 1);
array_unshift($result, $rodVal);
if ($arr) selectSort($arr);
return $result;
}
// 冒泡算法
function bubbleSort($arr)
{
for ($n = 0; $n < count($arr); $n++) {
for ($i=0; $i<count($arr)-1; $i++) {
if ($arr[$i+1] < $arr[$i]) list($arr[$i+1], $arr[$i]) = [$arr[$i], $arr[$i+1]];
}
}
return $arr;
}
// 一个介于选择、冒泡之间的四不像算法
function bubbleSort($arr)
{
for ($c = 0; $c < count($arr); $c++) {
for ($i = 0; $i < count($arr) - 1; $i++) {
if ($arr[$i] > $arr[$i + 1]) {
$bak = $arr[$i + 1];
list($arr[$i + 1], $arr[$i]) = [$arr[$i], $bak];
}
}
}
return $arr;
}
正则:
preg_match($match, $subject, $result) // 单次匹配 | preg_match_all($match, $subject, $result) // 多次匹配 |
preg_replace($need, $replace, $subject) // 替换字符串与数组 | preg_filter($need_arr, $replace_arr, $subject) // 替换并筛选数组元素 |
preg_grep($match , $arr) // 筛选符合正则的元素 |
Linux下PHP安装请移步这里:https://blog.csdn.net/weixin_40916428/article/details/115673255