码代码时容易用到的基础函数总结。

上代码

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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
//PHP设置跨域
header("Access-Control-Allow-Origin:*");

//PHP设置JSON头 以JSON格式输出
header("Content-type:application/json; charset=utf-8");

//正则取字符串
preg_match_all('/字符串(.*?)字符串/i',$data,$out);

// PHP把JSON对象转字符串不转码输出
json_encode($results, JSON_UNESCAPED_UNICODE);

//PHP设置最大运行时间 0 是永久
set_time_limit(0);

//PHP设置最大运行内存 1024M 是1G
ini_set('memory_limit', '1024M');

//返回数组中元素的个数,可以理解为返回数组的长度
count();

//获取变量中的字符串值,可以理解为把变量转换成字符串类型
strval();

//查询数组里是否存在着指定的健名,返回true和false
array_key_exists(键名,数组);

//特殊字符转换,可有效的防止xss注入
htmlspecialchars(addslashes(变量));

//清除字符串两旁的空格
trim();

// 向文件追加写入内容
// 使用 FILE_APPEND 标记,可以在文件末尾追加内容
// LOCK_EX 标记可以防止多人同时写入
file_put_contents(文件路径, 要写入的内容, FILE_APPEND | LOCK_EX);

//查询数组里是否存在该键值,存在返回该键值的键名,如果有多个匹配,那么返回最先匹配到的键值的键名
//false代表不限类型,键值数据相同即可
//true代表完全匹配,要求数据类型和键值完全相同,默认为false
array_search("键值", 数组, false);

//把变量转换为整数类型,如果有小数,则删除小数,不执行四舍五入
//失败或者变量为空时返回0,否则返回1;
intval();

//往数组尾部插入一个或多个元素
//返回新数组
array_push($a, "要插入的元素", "要插入的元素");

//把变量类型转换为字符串类型
//返回该字符串
strval();

// 查询数组里是否存在该键值,存在返回true,反之返回false
//false代表不限类型,键值数据相同即可
//true代表完全匹配,要求数据类型和键值完全相同,默认为false
in_array('键值', 数组, false);

//新建mysql服务器连接,可理解为新建数据库连接
$mysql = mysqli_connect("ip", "用户名", "密码", "数据库", "端口(默认为3306)");

//修改数据库连接的字符集
mysqli_set_charset($mysql, "utf8");

//对数据库进行sql操作
mysqli_query($mysql, sql语句);

//返回结果集的中行的数量,可理解为返回结果集的长度
mysqli_num_rows();

//从结果集中获取一条数据,并作为数组返回
mysqli_fetch_row();

//以切割符为断点切割字符串,组成数组并返回,
//数组的数目也就是长度
//大于0,返回相对数值的数组,如1,返回的数组只有一个元素, 0也返回只有一个元素的数组
//小于0,从数组尾部开始,去除 (-x) 的绝对值个元素,返回
explode("分割符", 变量, 返回数组元素的数目);

//把数组里的元素打乱随机排序
shuffle();

//截取保留结果集的第 n 条数据,其他删除,并返回
//n为0时截取第一条,为1时截取第二条,以此类推,n为-1时截取最后一条
mysqli_data_seek($xx, n);

//将数组转为json格式
json_encode();

//将json格式转为数组对象
json_decode($xxx);

//检测变量是否为数字,返回 true false
is_numeric(变量);

//将json格式转为数组
json_decode($xxx, true);

//清除指定的变量
unset($a);

//字符串替换指定值
//搜索$pic字符串里的\符号,全部替换成/
str_replace("\\", "/", $pic);

//设置时区 PRC为中国时区
date_default_timezone_set("PRC");

//获取当前时间
date('Y-m-d H:i:s', time());

//获取当前0点的时间戳
strtotime(date("Y-m-d"), time());

//下个月现在的时间戳
strtotime('+1 month');

//获取当前时间戳
time();

//获取当前时间的微秒
microtime();

//把日期时间转换成时间戳
strtotime();
//例:strtotime("2019-01-01 00:00:00");

//检查变量是否存在
isset();

//检查当前文件是否存在
file_exists();

//延迟下面的程序执行,1为延迟一秒后再执行后面的程序
sleep(1);

//创建目录,并且设置最高权限
mkdir(目录名称, 0700, true);

//创建一个0到100的随机数
mt_rand(0, 100);
rand(0,100);

//根据需求创建一个数组如:
range(0, 100);
//结果 Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 ... [100] => 100 );

//首字母转换为大写
ucwords();

//返回当前内存消耗量
memory_get_usage();

//获取一个数组的全部键名
array_keys(数组);

//获取一个数组的全部健值
array_values(数组);

//php引入php文件
require()、include()、require_once()、include_once()
//require和include相同点:都是引入并执行文件
//require和include不同点:
//require一般只会放在PHP脚本最前面进行使用,因为它会先行执行文件,需等待require引入的文件执行完成方可继续执行下去,如果require执行文件时出现错误,则会返回一个致命错误,并带掉程序。
//include一般是放在脚本中间进行使用,因为它不会先行执行,只会在用到的时候再执行加载,如果include引入的文件执行错误,不会带掉程序,只会返回一个警告,然后程序继续执行下去
//而require_once()和include_once()则跟require和include一样,唯一多出的一点属性就是:检测文件是否已经加载过,如果已经加载过了,就不再进行加载了

//检测ip是否合法
long2ip()和ip2long()
//ip2long():把ip转换成为整形,如:2130706433,如果ip不是合法ip则返回空
//long2ip():把整形转换为ip,如果整形为空则返回0.0.0.0
long2ip(ip2long("127.0.0.1"));

//数组转为字符串
implode(",", 数组);

//查看php设置
phpinfo();

public(公共的、默认)

protected(受保护的)被声明为protected的成员,只允许该类的子类进行访问。

private(私有的 ) 被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。

static 把方法设置成静态方法

interface 定义接口 如
interface a
{
//抽象方法,里面不添加任何数据及逻辑
public function b();
}

abstract 可把当前类定义为抽象类,抽象类时不能实例化的,等着被继承

implements 实现接口,和extends不同的是,如果当前类里面实现了这个接口a,但是类里面没有方法b,那么就会报错

extends 继承类,使用过框架的都知道,他的作用就是继承某个类,从而让他更容易的调用里面的方法

paremt::方法名 子类调用父类方法

//检查扩展是否已加载 ,返回布尔值
extension_loaded()

//加载图片的基本信息,返回值为数组
getimagesize()
//输出结果:
array(
    [0]   => 图片宽度的像素值
    [1]   => 图片高度的像素值
    [2]   => 图片的类型,返回的是数字,其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
    [3]   => 图片的宽高
    [bits] => 图片的每种颜色的位数,二进制格式
    [mime] => 图片的 MIME 信息,此信息可以用来在 HTTP Content - type 头信息中发送正确的信息,如: header("Content-type: image/jpeg");
)

//获取图片后缀 注:当获取的图片后缀为jpg的时候,将会输出jpeg,当false为true时则输出.png
image_type_to_extension(getimagesize('./01.png')[2], false);

//创建画板,默认背景颜色为黑色
imagecreatetruecolor(宽,高);

//给画板设置背景颜色
imagecolorallocate(imagecreatetruecolor(宽,高), 255, 255, 255);

//压缩
imagecopyresampled(画板,图片,画板X坐标点,画板y坐标点,图片x坐标点,图片y坐标点,要压缩到多宽,要压缩到多高,图片的宽,图片的高);

//销毁图像资源
imagedestroy();

//合并图片,把图片2放到图片1里面
imagecopymerge(图片1,图片2,图片1x坐标点,图片2y坐标点,图片1x坐标点,图片2y坐标点,图片2的宽,图片2的高,透明度);

//设置字体的颜色
imagecolorallocatealpha(图片或者画板,rgb颜色1,rgb颜色2,rgb颜色3,透明度);

//在图片或者画板里设置水印
imagettftext(画板或者图片, 字体大小, 字体倾斜度, 字体的x坐标, 字体的y坐标, 字体的颜色imagecolorallocatealpha(), 字体文件如:'STHUPO.TTF', 要输出的文字);