分类 函数 语法 功能 备注
PHP系统函数 var_dump() var_dump(
a)输出相关详细信息echo()echo(
a
)
输
出
相
关
详
细
信
息
e
c
h
o
(
)
e
c
h
o
(
a) 输出
isset() isset(
a)检测变量是否设置或者是否为NULL不是NULL时返回TRUE,反之返回FALSEunset()unset(
a
)
检
测
变
量
是
否
设
置
或
者
是
否
为
N
U
L
L
不
是
N
U
L
L
时
返
回
T
R
U
E
,
反
之
返
回
F
A
L
S
E
u
n
s
e
t
(
)
u
n
s
e
t
(
a) 删除变量
empty() empty() 检测是否为空 “”,0,”0”,NULL,FALSE,array()都视为空,0.0不为空
exit() exit(“信息”) 输出一条信息同时退出当前脚本 等同于die()
die() die(“信息”) 输出一条信息同时退出当前脚本 等同于exit()
iconv() iconv(incharset,putcharset,
str)字符按照指定编码进行转换gdinfo()gdinfo()取当前安装的gd库的信息uniqid()uniqid(‘前缀名′,TRUE)获取一个有前缀名的唯一id可以不加参数finfoopen()finfoopen()获取一个fileinfo资源常配合常量”FILEINFOMIMETYPE”使用finfofile()finfofile(
s
t
r
)
字
符
按
照
指
定
编
码
进
行
转
换
g
d
i
n
f
o
(
)
g
d
i
n
f
o
(
)
取
当
前
安
装
的
g
d
库
的
信
息
u
n
i
q
i
d
(
)
u
n
i
q
i
d
(
‘
前
缀
名
′
,
T
R
U
E
)
获
取
一
个
有
前
缀
名
的
唯
一
i
d
可
以
不
加
参
数
f
i
n
f
o
o
p
e
n
(
)
f
i
n
f
o
o
p
e
n
(
)
获
取
一
个
f
i
l
e
i
n
f
o
资
源
常
配
合
常
量
”
F
I
L
E
I
N
F
O
M
I
M
E
T
Y
P
E
”
使
用
f
i
n
f
o
f
i
l
e
(
)
f
i
n
f
o
f
i
l
e
(
filename) 获取文件信息
gettype() gettype(
a)获取数据类型settype()settype(
a
)
获
取
数
据
类
型
s
e
t
t
y
p
e
(
)
s
e
t
t
y
p
e
(
a,”string/integer…”) 设置数据类型 可取值:array,boolean,float,integer,null,object,string
serialize() serialize(array/object) 序列化
unserialize() unserialize(str) 反序列化
getcwd() getcwd() 获取当前工作目录
spl_autoload_register() spl_autoload_register(函数名) 注册给定的函数作为 __autoload 的实现
parse_url() parse_url(
str) 反序列化 getcwd() getcwd() 获取当前工作目录 spl_autoload_register() spl_autoload_register(函数名) 注册给定的函数作为 __autoload 的实现 parse_url() parse_url(
url) 解析 URL,返回其组成部分(数组)
basename() basename(
url)返回路径的中文部分pregmatch()pregmatch(
u
r
l
)
返
回
路
径
的
中
文
部
分
p
r
e
g
m
a
t
c
h
(
)
p
r
e
g
m
a
t
c
h
(
string,正则表达式,
arr)
a
r
r
)
arr为返回结果,是一个索引数组
url_encode() url_encode(
url)编码url地址Ajax中特殊字符使用urldecode()urldecode(
u
r
l
)
编
码
u
r
l
地
址
A
j
a
x
中
特
殊
字
符
使
用
u
r
l
d
e
c
o
d
e
(
)
u
r
l
d
e
c
o
d
e
(
url) 解码url地址
常量函数 define() define(常量名值,[TRUE]) 定义常量 第三个参数[TRUE]代表不区分大小写,省略时区分大小写,常量名要加引号
defined() defined(常量名) 判断是否是常量 返回值为布尔值,常量名要加引号
get_defined_constants()
n=getdefinedconstants()获得所有预定义常量返回所有预定义常量的关联数组,键是常量名,值为常量值判断函数isbool()isbool(
n
=
g
e
t
d
e
f
i
n
e
d
c
o
n
s
t
a
n
t
s
(
)
获
得
所
有
预
定
义
常
量
返
回
所
有
预
定
义
常
量
的
关
联
数
组
,
键
是
常
量
名
,
值
为
常
量
值
判
断
函
数
i
s
b
o
o
l
(
)
i
s
b
o
o
l
(
a) 判断是否为布尔类型 返回值为布尔值
is_int() is_int(
a)判断是否为整型返回值为布尔值isstring()isstring(
a
)
判
断
是
否
为
整
型
返
回
值
为
布
尔
值
i
s
s
t
r
i
n
g
(
)
i
s
s
t
r
i
n
g
(
a) 判断是否为字符串类型 返回值为布尔值
is_float() is_float(
a)判断是否为浮点型返回值为布尔值isnumeric()isnumeric(
a
)
判
断
是
否
为
浮
点
型
返
回
值
为
布
尔
值
i
s
n
u
m
e
r
i
c
(
)
i
s
n
u
m
e
r
i
c
(
a) 判断是否为数字或者数字字符串 返回值为布尔值
is_null() is_null(
a)判断是否为空返回值为布尔值isarray()isarray(
a
)
判
断
是
否
为
空
返
回
值
为
布
尔
值
i
s
a
r
r
a
y
(
)
i
s
a
r
r
a
y
(
a) 判断是否为数组 返回值为布尔值
is_dir() is_array(
a)判断是否为路径返回值为布尔值进制转换函数decbin()decbin(
a
)
判
断
是
否
为
路
径
返
回
值
为
布
尔
值
进
制
转
换
函
数
d
e
c
b
i
n
(
)
d
e
c
b
i
n
(
num) 十进制转换为二进制
decoct() decoct(
num)十进制转换为八进制dechex()dechex(
n
u
m
)
十
进
制
转
换
为
八
进
制
d
e
c
h
e
x
(
)
d
e
c
h
e
x
(
num) 十进制转换为十六进制
bindec() bindec(
num)二进制转换为十进制octdec()octdec(
n
u
m
)
二
进
制
转
换
为
十
进
制
o
c
t
d
e
c
(
)
o
c
t
d
e
c
(
num) 八进制转换为十进制
hexdec() hexdec(
num)十六进制转换为十进制baseconvert()baseconvert(
n
u
m
)
十
六
进
制
转
换
为
十
进
制
b
a
s
e
c
o
n
v
e
r
t
(
)
b
a
s
e
c
o
n
v
e
r
t
(
num,frombase,tobase) 任意进制转换 由原进制(frombase)转换为目标进制(tobase)
字符串函数 strpos() strpos(
str,
s
t
r
,
a) 获得变量
a在字符串
a
在
字
符
串
str中第一次出现的位置(下标) 判断取得下标为0时用”===”否则会和返回FALSE冲突
strripos() strripos(
str,
s
t
r
,
a) 获得变量
a在字符串
a
在
字
符
串
str中最后一次出现的位置(下标) 不区分大小写
strrpos() strrpos(
str,
s
t
r
,
a) 获得变量
a在字符串
a
在
字
符
串
str中最后一次出现的位置(下标)
strstr() strstr(
str,
s
t
r
,
a) 查找字符串的首次出现,返回
a及后面内容有第三个参数“true”时返回
a
及
后
面
内
容
有
第
三
个
参
数
“
t
r
u
e
”
时
返
回
a前面的内容
implode() implode(“,”,
arr)用,把数组连接成字符串“,”也会加入到字符串中explode()explode(“,”,
a
r
r
)
用
,
把
数
组
连
接
成
字
符
串
“
,
”
也
会
加
入
到
字
符
串
中
e
x
p
l
o
d
e
(
)
e
x
p
l
o
d
e
(
“
,
”
,
str) 把字符串转为数组 字符串中没有“,”时,整个字符串转换为1个元素的数组
str_split() str_split(
str,5)把字符串分割为数组,每个单元长度为5strreplace()strreplace(a,b,
s
t
r
,
5
)
把
字
符
串
分
割
为
数
组
,
每
个
单
元
长
度
为
5
s
t
r
r
e
p
l
a
c
e
(
)
s
t
r
r
e
p
l
a
c
e
(
a
,
b
,
str) 将字符串
str中的a用b替换print()print(
s
t
r
中
的
a
用
b
替
换
p
r
i
n
t
(
)
p
r
i
n
t
(
str) 原样输出 区分单引号和双引号
printf() printf(
str)输出格式化字符串返回值为格式化字符串长度sprintfsprintf(
s
t
r
)
输
出
格
式
化
字
符
串
返
回
值
为
格
式
化
字
符
串
长
度
s
p
r
i
n
t
f
s
p
r
i
n
t
f
(
str) 输出格式化字符串(不直接输出) 返回值为格式化的字符串
strtolower() strtolower(
str)字符串转换为小写strtoupper()strtoupper(
s
t
r
)
字
符
串
转
换
为
小
写
s
t
r
t
o
u
p
p
e
r
(
)
s
t
r
t
o
u
p
p
e
r
(
str) 字符串转换为大写
ucfirst() ucfirst(
str)字符串第一个字符转换为大写unwords()unwords(
s
t
r
)
字
符
串
第
一
个
字
符
转
换
为
大
写
u
n
w
o
r
d
s
(
)
u
n
w
o
r
d
s
(
str) 将字符串中每个单词的首字母转换为大写
trim() trim(
str)去除字符串两端的空白字符和其他字符包括:”“,”\t”,”\n”,”\r”,”\0”,”\0xB”rtrim()rtrim(
s
t
r
)
去
除
字
符
串
两
端
的
空
白
字
符
和
其
他
字
符
包
括
:
”
“
,
”
\t
”
,
”
\n
”
,
”
\r
”
,
”
\0
”
,
”
\0
x
B
”
r
t
r
i
m
(
)
r
t
r
i
m
(
str) 去除字符串右侧的空白字符和其他字符 包括:” “,”\t”,”\n”,”\r”,”\0”,”\0xB”
strlen() strlen(
str)获取字符串长度substrcount()substrcount(
s
t
r
)
获
取
字
符
串
长
度
s
u
b
s
t
r
c
o
u
n
t
(
)
s
u
b
s
t
r
c
o
u
n
t
(
str,"
a”)统计字符串中一个字符串
a
”
)
统
计
字
符
串
中
一
个
字
符
串
a出现的次数
substr() substr(
str,
s
t
r
,
start,
length)截取字符串
l
e
n
g
t
h
)
截
取
字
符
串
start为负数时:从 结尾处向前数第 start 个字符开始截取;
length为负数时,字符串尾部
l
e
n
g
t
h
为
负
数
时
,
字
符
串
尾
部
length个字符将被漏掉;
length为0,FALSE,null时,返回空字符串strstr()strstr(
l
e
n
g
t
h
为
0
,
F
A
L
S
E
,
n
u
l
l
时
,
返
回
空
字
符
串
s
t
r
s
t
r
(
)
s
t
r
s
t
r
(
str,
a)获取
a
)
获
取
a在字符串中出现的位置到结尾
str_repeat() str_repeat(
str,
s
t
r
,
num) 重复输出
str,次数为
s
t
r
,
次
数
为
num
md5() md5(
str)加密字符串strpad()strpad(
s
t
r
)
加
密
字
符
串
s
t
r
p
a
d
(
)
s
t
r
p
a
d
(
str,
length,”0”,STRPADLEFT)在
l
e
n
g
t
h
,
”
0
”
,
S
T
R
P
A
D
L
E
F
T
)
在
str的左侧用0填充使其长度为
lengthstrrev()strrev(
l
e
n
g
t
h
s
t
r
r
e
v
(
)
s
t
r
r
e
v
(
str) 翻转字符串顺序
数字函数 rand() rand(m,n) 取m-n之间的整数
mt_rand() mt_rand(m,n) 取m-n之间的整数
pow() pow(m,n) 取m的n次方
number_format() number_format(
n)以千位分隔符方式格式化一个数字数组函数unset()unset(
n
)
以
千
位
分
隔
符
方
式
格
式
化
一
个
数
字
数
组
函
数
u
n
s
e
t
(
)
u
n
s
e
t
(
arr)/unset(
arr[n]) 销毁某个元素时不影响其他元素的下标arrayvalues()arrayvalues(
a
r
r
[
n
]
)
销
毁
某
个
元
素
时
不
影
响
其
他
元
素
的
下
标
a
r
r
a
y
v
a
l
u
e
s
(
)
a
r
r
a
y
v
a
l
u
e
s
(
arr) 获取数组中所有的值病重新建立数字下标 下表为:0,1,2…,如果设置参数”TRUE”则保留键
array_keys() array_keys(
arr)获取数组中所有键值若指定元素,则返回指定元素的下标isarray()isarray(
a
r
r
)
获
取
数
组
中
所
有
键
值
若
指
定
元
素
,
则
返
回
指
定
元
素
的
下
标
i
s
a
r
r
a
y
(
)
i
s
a
r
r
a
y
(
arr) 判断是否为数组 返回布尔值
in_array() in_array(
str,
s
t
r
,
arr) 判断数组
arr是否包含某个元素
a
r
r
是
否
包
含
某
个
元
素
str 返回布尔值
count() count(
arr)/count(
a
r
r
)
/
c
o
u
n
t
(
arr,1) 统计数组长度/统计多维数组长度 count(
arr,1)−count(
a
r
r
,
1
)
−
c
o
u
n
t
(
arr)为多维数组数组元素个数
implode() implode(“,”,
arr)用,把数组连接成字符串“,”也会加入到字符串中explode()explode(“,”,
a
r
r
)
用
,
把
数
组
连
接
成
字
符
串
“
,
”
也
会
加
入
到
字
符
串
中
e
x
p
l
o
d
e
(
)
e
x
p
l
o
d
e
(
“
,
”
,
str) 把字符串转为数组 字符串中没有“,”时,整个字符串转换为1个元素的数组
str_split() str_split(
str,5)把字符串分割为数组,每个单元长度为5range()例:rang(1,9)建立一个1−9的数组arraymerge()arraymerge(
s
t
r
,
5
)
把
字
符
串
分
割
为
数
组
,
每
个
单
元
长
度
为
5
r
a
n
g
e
(
)
例
:
r
a
n
g
(
1
,
9
)
建
立
一
个
1
−
9
的
数
组
a
r
r
a
y
m
e
r
g
e
(
)
a
r
r
a
y
m
e
r
g
e
(
arr,
brr…)连接多个数组为一个数组arrayrandarrayrand(
b
r
r
…
)
连
接
多
个
数
组
为
一
个
数
组
a
r
r
a
y
r
a
n
d
a
r
r
a
y
r
a
n
d
(
arr,n) 在数组中随机抽取n个单元,返回键值,成为新的数组 得到值为抽取元素的键
shuffle() shuffle(
arr)打乱数组顺序打乱顺序后的数组为索引数组,键为1,2,3…each()each(
a
r
r
)
打
乱
数
组
顺
序
打
乱
顺
序
后
的
数
组
为
索
引
数
组
,
键
为
1
,
2
,
3
…
e
a
c
h
(
)
e
a
c
h
(
arr) 返回数组中当前元素的 键/值对 并将数组指针自动向前移动一步 返回的数组为混合数组,使用时配合list()使用
list() list(
a,
a
,
b,
c)=
c
)
=
arr 批量赋值 只对标准索引数组起作用,使用时配合list()使用
print_r() print_r(
arr)输出数组的简单信息arrayunshift()arrayunshift(
a
r
r
)
输
出
数
组
的
简
单
信
息
a
r
r
a
y
u
n
s
h
i
f
t
(
)
a
r
r
a
y
u
n
s
h
i
f
t
(
arr,
v1,
v
1
,
v2…) 在数组开头插入一个或多个单元 数值键名将修改为从零开始重新计数,所有的文字键名保持不变
array_push() array_push(
arr,
a
r
r
,
v1,
v2…)在数组最后插入一个或多个单元arrayshift()arrayshift(
v
2
…
)
在
数
组
最
后
插
入
一
个
或
多
个
单
元
a
r
r
a
y
s
h
i
f
t
(
)
a
r
r
a
y
s
h
i
f
t
(
arr) 将数组的第一个元素移除并返回 返回值为移除的元素,原数组所有单元左移一位,且所有数字键名将改为从零开始计数;如果 array 为 空或不是一个数组则返回 NULL。
array_pop() array_pop(
arr)将数组的最后一个元素移除并返回如果array为空或不是一个数组则返回NULL。arraykeyexist()arraykeyexist(
a
r
r
)
将
数
组
的
最
后
一
个
元
素
移
除
并
返
回
如
果
a
r
r
a
y
为
空
或
不
是
一
个
数
组
则
返
回
N
U
L
L
。
a
r
r
a
y
k
e
y
e
x
i
s
t
(
)
a
r
r
a
y
k
e
y
e
x
i
s
t
(
k,
arr)判断数组中是否存在键
a
r
r
)
判
断
数
组
中
是
否
存
在
键
k
array_search() array_search(
v,
v
,
arr) 在数组中搜索给定的值,如果成功则返回相应的键名 找到第一个相应值后即停止搜索
array_flip() array_flip(
arr)交换数组的键和值arraycountvalues()arraycountvalues(
a
r
r
)
交
换
数
组
的
键
和
值
a
r
r
a
y
c
o
u
n
t
v
a
l
u
e
s
(
)
a
r
r
a
y
c
o
u
n
t
v
a
l
u
e
s
(
arr) 统计数组中所有值出现的次数 返回数组,值为键,次数为值
array_unique() array_unique(
arr)移除数组中重复的值sort()sort(
a
r
r
)
移
除
数
组
中
重
复
的
值
s
o
r
t
(
)
s
o
r
t
(
arr) 将数组按照值的大小升序排列 下标会被重置
asort() asort(
arr)将数组按照值的大小升序排列保持键/值对rsort()rsort(
a
r
r
)
将
数
组
按
照
值
的
大
小
升
序
排
列
保
持
键
/
值
对
r
s
o
r
t
(
)
r
s
o
r
t
(
arr) 将数组按照值的大小降序排列 下标会被重置
arsort arsort(
arr)将数组按照值的大小降序排列保持键/值对natsort()natsort(
a
r
r
)
将
数
组
按
照
值
的
大
小
降
序
排
列
保
持
键
/
值
对
n
a
t
s
o
r
t
(
)
n
a
t
s
o
r
t
(
arr) 自然排序(符合人们日常使用的习惯) 区分大小写
natcasesort() natcasesort(
arr)自然排序(符合人们日常使用的习惯)不区分大小写ksort()ksort(
a
r
r
)
自
然
排
序
(
符
合
人
们
日
常
使
用
的
习
惯
)
不
区
分
大
小
写
k
s
o
r
t
(
)
k
s
o
r
t
(
arr) 将数组按照键的大小升序排列 返回布尔值
krsort() krsort(
arr)将数组按照键的大小降序排列返回布尔值arraysum()arraysum(
a
r
r
)
将
数
组
按
照
键
的
大
小
降
序
排
列
返
回
布
尔
值
a
r
r
a
y
s
u
m
(
)
a
r
r
a
y
s
u
m
(
arr) 对数组中所有的值求和 返回数值
key() key(
arr)获取数组中指针的位置(键)current()current(
a
r
r
)
获
取
数
组
中
指
针
的
位
置
(
键
)
c
u
r
r
e
n
t
(
)
c
u
r
r
e
n
t
(
arr) 获取指针所在位置的值
next() next(
arr)将数组中指针后移一个位置prev()prev(
a
r
r
)
将
数
组
中
指
针
后
移
一
个
位
置
p
r
e
v
(
)
p
r
e
v
(
arr) 将数组中指针前移一个位置
reset() reset(
arr)重置数组中指针位置(指向第一个位置)end()end(
a
r
r
)
重
置
数
组
中
指
针
位
置
(
指
向
第
一
个
位
置
)
e
n
d
(
)
e
n
d
(
arr) 将数组中指针移到最后一个位置
array_reverse () 返回一个单元顺序相反的数组
时间函数 time() time() 获取当前时间戳
mktime() mktime (小时, 分钟, 秒 ,月 ,日, 年 ) 获取指定时间的时间戳
date() date(‘Y-m-d H:i:s’,
tmp)将时间
t
m
p
)
将
时
间
tmp指定格式输出
tmp为时间strtotime()strtotime(“now”)将任何英文文本的日期时间描述解析为Unix时间戳“now”可以是其他变量,返回值为秒数据库函数mysqlconnect()mysqlconnect(
t
m
p
为
时
间
s
t
r
t
o
t
i
m
e
(
)
s
t
r
t
o
t
i
m
e
(
“
n
o
w
”
)
将
任
何
英
文
文
本
的
日
期
时
间
描
述
解
析
为
U
n
i
x
时
间
戳
“
n
o
w
”
可
以
是
其
他
变
量
,
返
回
值
为
秒
数
据
库
函
数
m
y
s
q
l
c
o
n
n
e
c
t
(
)
m
y
s
q
l
c
o
n
n
e
c
t
(
host,
user,
u
s
e
r
,
pwd) 链接mysql数据库
mysql_query() mysql_query(sql语句) 发送一条 MySQL 语句 对select语句返回resource或FALSE,对其他语句返回TRUE或者
mysql_fetch_assoc() mysql_fetch_assoc(
result)在结果集中取出一行数据组成关联数组并返回,并且继续移动内部数据指针mysqlfetcharray()mysqlfetcharray(
r
e
s
u
l
t
)
在
结
果
集
中
取
出
一
行
数
据
组
成
关
联
数
组
并
返
回
,
并
且
继
续
移
动
内
部
数
据
指
针
m
y
s
q
l
f
e
t
c
h
a
r
r
a
y
(
)
m
y
s
q
l
f
e
t
c
h
a
r
r
a
y
(
result,参数) 在结果集中取出一行数据组成数组并返回,并且继续移动内部数据指针 返回的数组类型由参数决定:MYSQL_NUM:索引数组;MYSQL_ASSOC:关联数组:MYSQL_BOTH:两者都有
mysql_fetch_row() mysql_fetch_row(
result)在结果集中取出一行数据组成索引数组并返回,并且继续移动内部数据指针mysqlselectdb()mysqlselectdb(数据库名)选择数据库返回值为布尔值mysqlnumrows()mysqlnumrows(查询结果)获取查询结果记录数文件操作函数fopen()fopen(“filename”,“mode”)打开文件或者URL“打开方式:r:只读w:写入a:写入x:创建并写入r+/w+/a+/x+:读写(详细介绍见手册)”fwrite()fwrite(“filename”,”内容”)在文件中写入内容fclose()fclose(“filename”)关闭文件或URLfileputcontents()fileputcontents(“filename”,”内容”)一步写入内容不必打开文件filegetcontents()filegetcontents(“filename”,”内容”)一步读取内容不必打开文件fread()fread(“filename”,字节数)读取指定长度文件内容文件必须先用fopen()打开filesize()filesize(“filename”)获取文件内容长度(字节数)文件必须先用fopen()打开fgets()fgets(
r
e
s
u
l
t
)
在
结
果
集
中
取
出
一
行
数
据
组
成
索
引
数
组
并
返
回
,
并
且
继
续
移
动
内
部
数
据
指
针
m
y
s
q
l
s
e
l
e
c
t
d
b
(
)
m
y
s
q
l
s
e
l
e
c
t
d
b
(
数
据
库
名
)
选
择
数
据
库
返
回
值
为
布
尔
值
m
y
s
q
l
n
u
m
r
o
w
s
(
)
m
y
s
q
l
n
u
m
r
o
w
s
(
查
询
结
果
)
获
取
查
询
结
果
记
录
数
文
件
操
作
函
数
f
o
p
e
n
(
)
f
o
p
e
n
(
“
f
i
l
e
n
a
m
e
”
,
“
m
o
d
e
”
)
打
开
文
件
或
者
U
R
L
“
打
开
方
式
:
r
:
只
读
w
:
写
入
a
:
写
入
x
:
创
建
并
写
入
r
+
/
w
+
/
a
+
/
x
+
:
读
写
(
详
细
介
绍
见
手
册
)
”
f
w
r
i
t
e
(
)
f
w
r
i
t
e
(
“
f
i
l
e
n
a
m
e
”
,
”
内
容
”
)
在
文
件
中
写
入
内
容
f
c
l
o
s
e
(
)
f
c
l
o
s
e
(
“
f
i
l
e
n
a
m
e
”
)
关
闭
文
件
或
U
R
L
f
i
l
e
p
u
t
c
o
n
t
e
n
t
s
(
)
f
i
l
e
p
u
t
c
o
n
t
e
n
t
s
(
“
f
i
l
e
n
a
m
e
”
,
”
内
容
”
)
一
步
写
入
内
容
不
必
打
开
文
件
f
i
l
e
g
e
t
c
o
n
t
e
n
t
s
(
)
f
i
l
e
g
e
t
c
o
n
t
e
n
t
s
(
“
f
i
l
e
n
a
m
e
”
,
”
内
容
”
)
一
步
读
取
内
容
不
必
打
开
文
件
f
r
e
a
d
(
)
f
r
e
a
d
(
“
f
i
l
e
n
a
m
e
”
,
字
节
数
)
读
取
指
定
长
度
文
件
内
容
文
件
必
须
先
用
f
o
p
e
n
(
)
打
开
f
i
l
e
s
i
z
e
(
)
f
i
l
e
s
i
z
e
(
“
f
i
l
e
n
a
m
e
”
)
获
取
文
件
内
容
长
度
(
字
节
数
)
文
件
必
须
先
用
f
o
p
e
n
(
)
打
开
f
g
e
t
s
(
)
f
g
e
t
s
(
h