方法汇总
- 数组方法
1. array_keys()
获取数组的键值
2. array_values()
获取数组的所有值
3. array_merge()
合并两个或多个数组
4. array_combine($arr1, $arr2)
将数组1作为key,数组2作为value
5. array_reverse()
颠倒数组
6. array_push()
末尾追加
7. array_pop()
弹出末尾
8. array_unshift()
头部追加
9. array_shift()
头部移除
10. array_slice($arr, $start, $len)
取出部分,不改变原数组
11. array_splice(&$arr, $start, $len. $replace)
移除部分,用replace取代
12. array_chunk($arr, $split_len)
数组分割
13. array_map($arr, user_func)
遍历数组,自定义回调
14. array_filter($arr, user_func)
自定义回调筛选
15. each()
遍历数组,会移动数组指针
16. array_search()
数组查找
17. array_pad($arr, $len, $pad)
数组填充
18. array_rand()
随机子集
19. sort()、asort()、ksort()、usort()、rsort()、arsort()、krsort()
数组排序
20. list($a, $b) = ['a', 'b']
数据赋值
- 字符串方法
1. htmlspecialchars
特殊字符转换成html实体
2. htmlentites
将字符串转换成html转义字符
3. addslashes
将字符转中的单引号、双引号、反斜线\转义
(addcslashes(str, chars)可以对选定的字符进行转义)
4. strip_tags
去掉字符串中的html和php标签
5. strtolower
字符串小写
6. strtoupper
字符串大写
7. trim
去除两端空格,\t \r \n
8. str_split($str, $len)
将字符串分割成$len长度的几个字符串
9. strstr($str, $find)
找到字符串$find第一次出现的位置,输出这个位置右边的子字符串
10. strlen($str)
获取字符串的长度(英文)
11. mb_strlen($str, $encoding)
获取字符串长度根据编码
12. strpos($str, $find)
获取$find第一次出现的位置,找到返回位置下标,找不到返回false
stripos--忽略大小写
凡是加了‘i’的都是忽略大小写的版本
凡是加了‘r’的都是从右往左的版本
13. substr($str, $start, $len)
获取子字符串, $len省略为到结尾,为负数代表从后往前数
14. str_pad($str, $len, $pad, $type)
填补字符串到指定长度 $type为STR_PAD_LEFT或者STR_PAD_BOTH或者STR_PAD_RIGHT
15. strcmp($str1, $str2)
字符串比较,大小写敏感
strcasecmp大小写不敏感
16. str_shuffle
随机打乱字符串
17. str_replace($pattern, $replace, $ori_str, $count)
$pattern和$replace可以为数组
18. str_repeat($str, $times)
字符串重复
19. explode($split, $str) | implode($split, $arr)
字符串=》数组
数组=》字符串
20. md5($str), crypt($str)
字符串加密
21. strrev($str)
反转字符串
- 时间函数
1. date(format, [timestamp])
Format:
Y:四位年份
y:两位年份
m:两位月份
n:没有前导0,月份
M:3位英文月份
d:两位天数,每月的第几天
j:没有前导0,每月的第几天,
D:星期几,3位英文
N:星期几,1-7
t:每个月总的天数
H:两位小时,24小时制
h:两位小时,12小时制
G:没有前导0的小时,24小时制
g:没有前导0的小时,12小时制
2. strtotime()
* strtotime('now')
* strtotime('next Monday')
* strtotime('+1 day')
* strtotime('+1 week')
* strtotime('+1 week +2 days +3 hours +4 minutes +5 seconds')
3. time()
时间戳
4. date_default_timezone_set('PRC')
设置默认时区
- Mysql数据库
1. mysqli_connect('host', 'username', 'password', 'dbname')
mysqli数据库连接
2. mysqli_connect_errno()
mysqli连接失败代码
3. mysqli_connect_error()
4. mysqli_query()
成功返回True,失败返回False
5. mysqli_num_rows()
$result = $mysqli->query($sql);
$rows = $result->num_rows();
// or
$result = mysqli_query($sql);
$nums = mysqli_num_rows($result);
6. mysqli_fetch_array()
获取结果集,包含0,1,2..数字和数组-列名两种
mysqli_fetch_assoc()
获取结果集,使用数组-列名获取 $row['id']
mysqli_fetch_row()
获取结果集,使用0,1,2.. $row[0], $row[1]
mysqli_fetch_object()
获取结果集,使用对象方式,$row->id
7. mysqli_autocommit($conn, False|True)
自动提交,事务相关
mysqli_commit()
提交事务,需要mysqli_autocommit(false)
mysqli_rollback()
8. mysqli_affected_rows()
$mysqli->affected_rows
影响的行数
9. mysqli_select_db()
切换数据库
10. statement
```
if ($stmt = $mysqli->prepare('insert into tb(name, age, address) values (?, ?, ?)')) {
$stmt->bindParam("sds", $name, $age, $address);
$name = '小徒徒';
$age = 23;
$adderss = '哈尔滨';
$stmt->execute();
printf("%d rows affected", $stmt->affected_rows);
$stmt->close();
}
if($stmt2 = $mysqli->prepare('select name, age from tb')) {
$stmt2->execute();
$rows = $stmt2->affected_rows();
$stmt2->bind_result($name, $age);
while($stmt2->fetch()) {
printf('%s-%s', $name, $age);
}
$stmt->close();
}
```
- File函数
1. basename()
去掉路径信息,获取文件或者目录名
2. copy($ori, $des)
文件复制
3. dirname
获取文件或目录所属的上级目录
4. disk_free_space()
磁盘剩余空间
disk_total_space()
磁盘总共空间
5. fopen($filename, $mode)
打开文件,获取句柄,
$mode为r, r+, w, w+, a, a+, x以读写方式创建并打开文件,如果文件存在,返回false
6. fgetc($handle)
从文件读取一个字符
7. fgets($handle)
从文件读取一行
8. file_exists($file)
文件是否存在
9. file_get_contents($path)
将文件内容一次性读入一个字符串,如果path有特殊字符,需使用urlencode()
10. file_put_contents($path, $data)
data可以为数组
11. file($url)
将一个文件读取到数组中
12. filectime() 文件创建时间
fileatime() 文件上次访问时间
filemtime() 文件上次修改时间
13. filesize()
文件大小
14. filetype()
文件类型
15. flock($handle, LOCK_TYPE)
给文件上锁
LOCK_EX:独占锁 w w+, a a+
LOCK_SH:共享锁 r r+
LOCK_UN:开锁
16. is_dir()
is_file()
is_link()
17. is_readable()
is_writeable()
18. mkdir()
创建目录
19. pathinfo()
$pathinfo = pathinfo('/usr/xy/php.ini');
echo $pathinfo['extension']; //ini
echo $pathinfo['basename']; //php.ini
echo $pathinfo['dirname']; // /usr/xy
20. rename()
移动文件
21. rmdir()
删除文件夹
22. unlink()
删除文件
23. is_uploaded_file()
为了能使 is_uploaded_file() 函数正常工作,必段指定类似于 $_FILES['userfile']['tmp_name'] 的变量,而在从客户端上传的文件名 $_FILES['userfile']['name'] 不能正常运作。
24. move_uploaded_file()
如果是通过POST上传的文件,则可以移动,否则返回false
- Directory函数
1. opendir()
打开文件夹
$filepath = "/usr/xy";
if(is_dir($filepath)) {
$fp = opendir($filepath);
while(false !== ($file = readdir($fp))) {
echo $file;
}
}
function readdir_recusive($filepath, $prefix = '') {
if(is_dir($filepath)) {
$handle = opendir($filepath);
while(false !== ($file = readdir($handle))) {
if($file != '.' && $file != '..')
{
$filename = mb_convert_encoding($file, 'utf-8', 'gbk');
$fullpath = mb_convert_encoding($filepath.'/'.$file, 'utf-8', 'gbk');
if(is_dir($filepath.'/'.$file)) {
echo '<span style="font-size: 16px; color: #19d;">'.$filename. '</span><br>';
readdir_recusive($filepath.'/'.$file, $prefix.' ');
}
else
{
echo $prefix.'<span style="font-size: 16px; color: #ea4;"><a href="file://'.$fullpath.'" target="__blank">'. $filename . '</a></span><br>';
}
}
}
closedir($handle);
}
}
readdir_recusive(mb_convert_encoding('F://下载', 'gbk', 'utf-8'));
其他方法
-
isset, empty, isnull的区别
image.png
- is_null和is_set的结果是相反的,只有null和undefined的时候,is_null为true
- empty的结果都为空
-
strcmp(str2)
image.png
- strcmp用于比较两个字符串的大小
- 相等时返回0
- 前者大于后者时,返回正数,结果为第一个不相等的字符的ascii的差
- 前者小于后者时,返回负数,结果为第一个不相等的字符的ascii的差
-
strncmp(str2, size位
结果: 返回str2 第一个不相同的位的ascii差,如果两个的前$size相同,返回0 -
get_class: 获取类的名称
class obj{} $o = new obj; echo get_class($o); //obj
网友评论