php常用函数

记录一些php常用的自己不太熟练的函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
mysql_affected_rows() 函数返回前一次 MySQL 操作所影响的记录行数。
basename() 函数返回路径中的文件名部分。
ip2long() ip2long — 将一个IPV4的字符串互联网协议转换成数字格式
strrev() 字符串的翻转

sort() - 以升序对数组排序 键不参与排序
rsort() - 以降序对数组排序 键不参与排序

asort() - 根据值,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序

ksort() - 根据键,以升序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序

$_SERVER['SERVER_NAME'] 服务器所在的主机名
$_SERVER['SERVER_ADDR'] 服务器的ip地址
$_SERVER['REMOTE_ADDR'] 客户端的ip

array_flip() //交换数组中的键和值
array_column($a, 'last_name') //返回数组中单一的列
array_chunk($arr,2); //分割数组,每个数组含有两个

list($var1,$var2) = ['1','2']; //复制数组中的值
strlen(); //获取字符长度
strtoupper();
strtolower();
ucfirst();
ucwords();
trim();
number_format();


预定义字符
"\0" - NULL
"\t" - 制表符
"\n" - 换行
"\x0B" - 垂直制表符
"\r" - 回车
" " - 空格

addcslashes() -> stripcslashes(); //指定的字符添加\转义字符
addslashes() -> stripslashes(); //指定的预定义字符前,添加转义字符
bin2hex(); //把 ASCII 字符的字符串转换为十六进制值。hex2bin()转换回来
chop(); //去除右侧的空白
htmlspecialchars() -> htmlspecialchars_decode(); 函数把预定义的字符转换为html实体
htmlentitles() -> html_entity_decode(); 字符转换为html实体
htmlentities 和 htmlspecialchars 的区别在于 htmlentities 会转化所有的 html character entity,而htmlspecialchars 只会转化手册上列出的几个 html character entity,中文转义的时候一般都是要用htmlspecialchars

strip_tags(); //去除html xml 和 php标记

str_pad()
str_repeat()
str_replace()
str_shuffle()
str_split()
strcasecmp() //比较两个字符串(大小写不敏感)
strcmp() //比较两个大小写(大小写敏感)

stripos() - 查找字符串在另一字符串中第一次出现的位置(不区分大小写)
strripos() - 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)
strpos() - 查找字符串在另一字符串中第一次出现的位置(区分大小写)
strrpos() - 查找字符串在另一个字符串最后一次出现的位置(区分大小写)

strchr('hello world','word'); //截取字符出现后面的字符 中的第一次出现,并返回此字符串的其余部分 同名函数strstr("I love Shanghai!","Shanghai");

substr_count()
substr_replace()

trim
ltrim()
rtrim()


array_change_key_case();
array_chunk()
array_column()
array_count_values()
array_fill()
array_fill_keys()
array_flip()
array_unique()
array_reverse()

array_unshift() //insert first
array_shift() //删除首个
array_pop() 函数删除数组中的最后一个元素。
array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。$array[] = $value

current() - 返回数组中的当前元素的值
next() - 将内部指针指向数组中的下一个元素,并输出
prev() - 将内部指针指向数组中的上一个元素,并输出
reset() - 将内部指针指向数组中的第一个元素,并输出
each() - 返回当前元素的键名和键值,并将内部指针向前移动
end() - 函数将数组内部指针指向最后一个元素,并返回该元素的值(如果成功)。


abs()
ceil()
floor()
hexdec() // dechex()
max()
min()
rand()
mt_rand();
round()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1.双引号和单引号的区别
双引号解释变量,单引号不解释变量,能使单引号字符尽量使用单引号,
单引号的效率比双引号要高(因为双引号要先遍历一遍,判断里面有没有变量,然后再进行操作,而单引号则不需要判断)

date_default_timezone_set('PRC');
echo date('Y-m-d H:i:s');

$a = [[]];
var_dump(empty($a)); //false

if('01' == '1')
{
echo 'success <br/>'; //php会自动转换类型int
}

php函数不区分大小写,但是一般调用的时候采用大小写形式

urlencode(); //中文url转换

$_SERVER[‘DOCUMENT_ROOT’] //当前运行脚本所在文档根目录
$_SERVER[‘HTTP_HOST’] //当前请求的头部HOST
$_SERVER[‘REMOTE_ADDR’] //获取当前用户的ip
$_SERVER[‘SERVER_ADDR’] //获取服务器的ip
$_SERVER[‘HTTP_REFERER’] //链接当前页面的前一页的url
$_SERVER[‘SERVER_NAME’] //当前运行脚本服务器的名称
$_SERVER[‘REQUEST_URI’] //request url
$_SERVER[‘PHP_SELF’] //正在执行脚本的文件名

$_FILE;
$_FILE[‘userfile’][‘name’] //客户端机器的文件原名称
$_FILE[‘userfile’][‘type’] //MIME类型 “image/gif”
$_FILE[‘userfile’][‘size’] //已上传文件的大小,单位为字节
$_FILE[‘userfile’][‘tmp_name’] //服务器端临时文件的名称
$_FILE[‘userfile’][‘error’] //文件上传的错误代码

1
2
3
4
is_null(); //判断is_null为null  
被赋值为 null
尚未被赋值
被unsert()

接口和抽象类

  1. 接口可以多个实现,抽象类只能单继承
  2. 接口只能是public,抽象类可以使private,public protect
1
2

mysqldump -u root -p password 库名 表名1 表名2 > 文件名 //导出数据库表,存储到文件中

char和varchar

  1. 定长和变长的区别
  2. char最多存放字符个数255和编码无关;varchar最多存放65532个字符,varchar的最大有效长度是有最大行大小和使用的字符集决定的。整体最大的长度是65532;
    varchar存放字符串的时候,第一个字节是空的不存放任何数据,然后两个字节存放字符串的长度,所以有效长度是 65535 - 2 - 1 = 65532;
  3. char(N)和varchar(N)都是指的字符个数,不是字节数
    GBK 32766
    UTF8 21844

下面是两张表进行了两次左连接,可以获取到需要的数据,以前没有注意这个使用的方法。

1
2
3
4
5
6
7
8
SELECT
t1.team_name,
re,
t2.team_name
FROM
`match` AS m
LEFT JOIN team AS t1 ON t1.id = m.hid
LEFT JOIN team AS t2 ON t2.id = m.gid;

文章目录
|