PHP 第八周函数学习笔记
fileinode()
作用
fileinode() 函数返回指定文件的 inode 编号。
如果成功,该函数返回指定文件的 inode 编号。如果失败,则返回 FALSE。
用法
fileinode(filename)
测试案例
<?php
echo fileinode("test.txt");
?>
filemtime()
作用
filemtime() 函数返回文件内容的上次修改时间。
如果成功,该函数将以 Unix 时间戳形式返回文件内容的上次修改时间。如果失败,则返回 FALSE。
用法
filemtime(filename)
提示和注释
注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
测试案例
<?php
echo filemtime("test.txt");
echo "<br />";
echo "Last modified: ".date("F d Y H:i:s.",filemtime("test.txt"));
?>
结果
1139919766
Last modified: February 14 2006 13:22:46.
fileowner()
作用
fileowner() 函数返回指定文件的用户 ID(所有者)。
如果成功,该函数返回用户 ID。如果失败,则返回 FALSE。
用法
fileowner(filename)
提示和注释
注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
注释:该函数不能在 Windows 系统上运行。
提示:请使用 posix_getpwuid() 来把用户 ID 转换为用户名。
测试案例
<?php
echo fileowner("test.txt");
?>
fileperms()
作用
fileperms() 函数返回文件或目录的权限。
如果成功,该函数以数字形式返回权限。如果失败,则返回 FALSE。
用法
fileperms(filename)
提示和注释
注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
测试案例
<?php
echo fileperms("test.txt");
?>
结果
33206
filesize()
作用
filesize() 函数返回指定文件的大小。
如果成功,该函数返回文件大小的字节数。如果失败,则返回 FALSE。
用法
filesize(filename)
提示和注释
注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
测试案例
<?php
echo filesize("test.txt");
?>
结果
20
filetype()
作用
filetype() 函数返回指定文件或目录的类型。
如果成功,该函数返回 7 种可能的值之一。如果失败,则返回 FALSE。
可能的返回值:
- fifo
- char
- dir
- block
- link
- file
- unknown
用法
filetype(filename)
提示和注释
注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
测试案例
<?php
echo filetype("test.txt");
?>
结果
file
flock()
作用
flock() 函数锁定或释放文件。
如果成功,该函数返回 TRUE。如果失败,则返回 FALSE。
用法
flock(file,lock,block)
lock 必需。规定要使用哪种锁定类型。
可能的值:
LOCK_SH - 共享锁定(读取的程序)。允许其他进程访问该文件。
LOCK_EX - 独占锁定(写入的程序)。防止其他进程访问该文件。
LOCK_UN - 释放一个共享锁定或独占锁定
LOCK_NB - 锁定的情况下避免阻塞其他进程。
block 可选。若设置为 1,则当进行锁定时阻塞其他进程。
提示和注释
注释:这些锁仅在当前的 PHP 进程中使用。如果权限允许,其他的进程可修改或删除一个 PHP-locked 文件。
注释:flock() 在 Windows 下具有强制性。
提示:可以通过 fclose() 来释放锁定操作,脚本执行完成时会自动调用。
测试案例
<?php
$file = fopen("test.txt","w+");
// exclusive lock
if (flock($file,LOCK_EX)) {
fwrite($file,"Write something");
// release lock
flock($file,LOCK_UN);
} else {
echo "Error locking file!";
}
fclose($file);
?>
fnmatch()
作用
fnmatch() 函数根据指定的模式来匹配文件名或字符串。
用法
fnmatch(pattern,string,flags)
pattern 必需。规定要检索的模式。
提示和注释
注释:该函数无法在 Windows 平台上使用。
测试案例
<?php
$txt = "My car is darkgrey";
if (fnmatch("*gr[ae]y",$txt))
{
echo "some form of gray ...";
} else {
echo "NO";
}
结果
some form of gray ...
fopen()
作用
fopen() 函数打开一个文件或 URL。
如果 fopen() 失败,它将返回 FALSE 并附带错误信息。您可以通过在函数名前面添加一个 '@' 来隐藏错误输出。
用法
fopen(filename,mode,include_path,context)
mode 必需。规定您请求到该文件/流的访问类型。
可能的值:
"r" (只读方式打开,将文件指针指向文件头)
"r+" (读写方式打开,将文件指针指向文件头)
"w" (写入方式打开,清除文件内容,如果文件不存在则尝试创建之)
"w+" (读写方式打开,清除文件内容,如果文件不存在则尝试创建之)
"a" (写入方式打开,将文件指针指向文件末尾进行写入,如果文件不存在则尝试创建之)
"a+" (读写方式打开,通过将文件指针指向文件末尾进行写入来保存文件内容)
"x" (创建一个新的文件并以写入方式打开,如果文件已存在则返回 FALSE 和一个错误)
"x+" (创建一个新的文件并以读写方式打开,如果文件已存在则返回 FALSE 和一个错误)
include_path 可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 '1'。
提示和注释
注释:当书写一个文本文件时,请确保您使用了正确的行结束符!在 Unix 系统中,行结束符为 \n;在 Windows 系统中,行结束符为 \r\n;在 Macintosh 系统中,行结束符为 \r。Windows 系统中提供了一个文本转换标记 "t" ,可以透明地将 \n 转换为 \r\n。您还可以使用 "b" 来强制使用二进制模式,这样就不会转换数据。为了使用这些标记,请使用 "b" 或者 "t" 来作为 mode 参数的最后一个字符。
测试案例
<?php
$file = fopen("test.txt","r");
$file = fopen("/home/test/test.txt","r");
$file = fopen("/home/test/test.gif","wb");
$file = fopen("http://www.example.com/","r");
$file = fopen("ftp://user:password@example.com/test.txt","w");
?>
fpassthru()
作用
fpassthru() 函数从打开文件的当前位置开始读取所有数据,直到文件末尾(EOF),并向输出缓冲写结果。
该函数返回传递的字符数,如果失败则返回 FALSE。
用法
fpassthru(file)
提示和注释
注释:当在 Windows 系统的二进制文件中使用 fpassthru() 函数时,请牢记,必须以二进制的模式打开文件。
提示:如果您已经向文件写入数据,就必须调用 rewind() 来将文件指针指向文件头。
提示:如果您只想将文件的内容输出到输出缓冲,而不对它进行修改,请使用 readfile() 函数代替,这样可以省去 fopen() 调用。
测试案例
<?php
$file = fopen("test.txt","r");
// Read first line
fgets($file);
// Send rest of the file to the output buffer
echo fpassthru($file);
fclose($file);
?>
结果
There are three lines in this file.
This is the last line.59
fputcsv()
作用
fputcsv() 函数将行格式化为 CSV 并写入一个打开的文件中。
该函数返回写入字符串的长度。如果失败,则返回 FALSE。
用法
fputcsv(file,fields,seperator,enclosure)
file 必需。规定要写入的打开文件。
fields 必需。规定要从中获得数据的数组。
separator 可选。设置字段分界符(只允许一个字符),默认值为逗号( , )。
enclosure 可选。设置字段环绕符(只允许一个字符),默认值为双引号( " )。
测试案例
<?php
$list = array
(
"Peter,Griffin,Oslo,Norway",
"Glenn,Quagmire,Oslo,Norway",
);
$file = fopen("contacts.csv","w");
foreach ($list as $line)
{
fputcsv($file,split(',',$line));
}
fclose($file); ?>
fputs()
作用
fputs() 函数将内容写入一个打开的文件中。
函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止运行。
如果函数成功执行,则返回写入的字节数。如果失败,则返回 FALSE。=
fputs() 函数是 fwrite() 函数的别名。
用法
fputs(file,string,length)
file 必需。规定要写入的打开文件。
string 必需。规定要写入打开文件的字符串。
length 可选。规定要写入的最大字节数。
提示和注释
该函数是二进制安全的。(意思是二进制数据(如图像)和字符数据都可以使用此函数写入。)
测试案例
<?php
$file = fopen("test.txt","w");
echo fputs($file,"Hello World. Testing!");
fclose($file);
?>
结果
21
fread()
作用
fread() 函数读取打开的文件。
函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止运行。
该函数返回读取的字符串,如果失败则返回 FALSE。
用法
string fread ( resource $handle , int $length )
handle 文件系统指针,是典型地由 fopen() 创建的 resource(资源)。
length 必需。规定要读取的最大字节数。
提示和注释
该函数是二进制安全的。(意思是二进制数据(如图像)和字符数据都可以使用此函数写入。)
测试案例
<?php
// 从文件中读取 10 个字节
$file = fopen("test.txt","r");
$contents = fread($file,"10");
fclose($file);
// 读取整个文件
$file = fopen("test.txt","r");
$contents = fread($file,filesize("test.txt"));
fclose($file);
?>
fscanf()
作用
fscanf() 函数根据指定的格式对来自打开的文件的输入进行解析。
用法
fscanf(file,format,mixed)
format 必需。规定格式。
可能的格式值:
%% - 返回一个百分号 %
%b - 二进制数
%c - ASCII 值对应的字符
%d - 包含正负号的十进制数
%e - 科学计数法(例如:1.2e+2)
%u - 不包含正负号的十进制数
%f - 浮点数(本地属性)
%F - 浮点数(非本地属性)
%o - 十进制数
%s - 字符串
%x - 十六进制数(小写字母)
%X - 十六进制数(大写字母)
附加的格式值。必需放置在 % 和字母之间(例如 %.2f):
+ (在数字前面加上 + 或 - 来定义数字的正负性。默认情况下,只有负数才做标记,正数不做标记)
' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。例如:%'x20s(使用 "x" 作为填充))
- (左调整变量值)
[0-9] (规定变量值的最小宽度)
.[0-9] (规定小数位数或最大字符串长度)
注释:如果使用多个上述的格式值,它们必须按照上面的顺序进行使用,不能打乱。
提示和注释
注释:格式字符串中的任何空白会与输入流中的任何空白匹配。这意味着格式字符串中的制表符 \t 也会与输入流中的一个单一的空格字符匹配。
fseek()
作用
fseek() 函数在打开的文件中定位。
该函数把文件指针从当前位置向前或向后移动到新的位置,新位置从文件头开始以字节数度量。
如果成功该函数返回 0,如果失败则返回 -1。请注意,移动到文件末尾(EOF)之后的位置不会产生错误。
用法
fseek(file,offset,whence)
file 必需。规定要在其中定位的文件。
offset 必需。规定新的位置(从文件头开始以字节数度量)。
whence 可选。(PHP 4 中新增的)。 可能的值:
SEEK_SET - 设定位置等于 offset。默认。
SEEK_CUR - 设定位置为当前位置加上 offset。
SEEK_END - 设定位置为文件末尾(EOF)加上 offset(要移动到文件末尾之前的位置,offset 必须是一个负值)。
提示和注释
通过使用 ftell() 来找到当前位置!
测试案例
<?php
$file = fopen("test.txt","r");
// read first line
fgets($file);
// move back to beginning of file
fseek($file,0);
?>
fstat()
作用
fstat() 函数返回关于一个打开的文件的信息。
该函数将返回一个包含下列元素的数组:
[0] 或 [dev] - 设备编号
[1] 或 [ino] - inode 编号
[2] 或 [mode] - inode 保护模式
[3] 或 [nlink] - 连接数目
[4] 或 [uid] - 所有者的用户 ID
[5] 或 [gid] - 所有者的组 ID
[6] 或 [rdev] - inode 设备类型
[7] 或 [size] - 文件大小的字节数
[8] 或 [atime] - 上次访问时间(Unix 时间戳)
[9] 或 [mtime] - 上次修改时间(Unix 时间戳)
[10] 或 [ctime] - 上次 inode 改变时间(Unix 时间戳)
[11] 或 [blksize] - 文件系统 IO 的块大小(如果支持)
[12] 或 [blocks] - 所占据块的数目
用法
fstat(file)
提示和注释
注释:从这个函数返回的结果与服务器到服务器的结果是不相同的。这个数组包含了数字索引、名称索引或同时包含上述二者。
提示:fstat() 函数与 stat() 函数大致类似。唯一的不同点就是,fstat()函数在使用时,文件必须已经打开。
测试案例
<?php
$file = fopen("test.txt","r");
print_r(fstat($file));
fclose($file);
?>
结果
Array
(
[0] => 0
[1] => 0
[2] => 33206
[3] => 1
[4] => 0
[5] => 0
[6] => 0
[7] => 92
[8] => 1141633430
[9] => 1141298003
[10] => 1138609592
[11] => -1
[12] => -1
[dev] => 0
[ino] => 0
[mode] => 33206
[nlink] => 1
[uid] => 0
[gid] => 0
[rdev] => 0
[size] => 92
[atime] => 1141633430
[mtime] => 1141298003
[ctime] => 1138609592
[blksize] => -1
[blocks] => -1
)
ftell()
作用
ftell() 函数返回在打开文件中的当前位置。
返回文件指针的当前位置,如果失败则返回 FALSE。
用法
ftell(file)
提示和注释
注释:从这个函数返回的结果与服务器到服务器的结果是不相同的。这个数组包含了数字索引、名称索引或同时包含上述二者。
提示:fstat() 函数与 stat() 函数大致类似。唯一的不同点就是,fstat()函数在使用时,文件必须已经打开。
测试案例
<?php
$file = fopen("test.txt","r");
// print current position
echo ftell($file);
// change current position
fseek($file,"15");
// print current position again
echo "<br />" . ftell($file);
fclose($file);
?>
结果
0
15
ftruncate()
作用
ftruncate() 函数把打开文件截断到指定的长度。
如果成功则返回 TRUE,如果失败则返回 FALSE。
用法
ftruncate(file,size)
测试案例
<?php
//check filesize
echo filesize("test.txt");
echo "<br />";
$file = fopen("test.txt", "a+");
ftruncate($file,100);
fclose($file);
//Clear cache and check filesize again
clearstatcache();
echo filesize("test.txt");
?>
结果
792
100
fwrite()
作用
fwrite() 函数将内容写入一个打开的文件中。
函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止运行。
如果函数成功执行,则返回写入的字节数。如果失败,则返回 FALSE。
用法
fwrite(file,string,length)
测试案例
<?php
$file = fopen("test.txt","w");
echo fwrite($file,"Hello World. Testing!");
fclose($file);
?>
结果
21
glob()
作用
glob() 函数返回一个包含匹配指定模式的文件名或目录的数组。
该函数返回一个包含有匹配文件/目录的数组。如果失败则返回 FALSE。
用法
glob(pattern,flags)
pattern 必需。规定检索模式。
flags 可选。规定特殊的设定。
可能的值:
GLOB_MARK - 在每个返回的项目中加一个斜线
GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)
GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式
GLOB_NOESCAPE - 反斜线不转义元字符
GLOB_BRACE - 扩充 {a,b,c} 来匹配 'a','b' 或 'c'
GLOB_ONLYDIR - 仅返回与模式匹配的目录项
GLOB_ERR - (PHP 5.1 新增的)如果错误则停止,默认情况下忽略所有错误
测试案例
<?php
print_r(glob("*.txt"));
print_r(glob("*.*"));
?>
结果
Array
(
[0] => target.txt
[1] => source.txt
[2] => test.txt
[3] => test2.txt
)
Array
(
[0] => contacts.csv
[1] => default.php
[2] => target.txt
[3] => source.txt
[4] => tem1.tmp
[5] => test.htm
[6] => test.ini
[7] => test.php
[8] => test.txt
[9] => test2.txt
)
is_dir()
作用
is_dir() 函数检查指定的文件是否是一个目录。
如果目录存在,该函数返回 TRUE。
用法
is_dir(file)
提示和注释
注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
测试案例
<?php
$file = "images";
if (is_dir($file)) {
echo ("$file is a directory");
} else {
echo ("$file is not a directory");
}
?>
结果
images is a directory
is_executable()
作用
is_executable() 函数检查指定的文件是否可执行。
如果文件可执行,该函数返回 TRUE。
用法
is_executable(file)
提示和注释
注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
注释:自 PHP 5.0 版本起,is_executable() 函数可用于 Windows。
测试案例
<?php
$file = "setup.exe";
if (is_executable($file)) {
echo ("$file is executable");
} else {
echo ("$file is not executable");
}
?>
结果
setup.exe is executable
is_file()
作用
is_file() 函数检查指定的文件是否是常规的文件。
如果文件是常规的文件,该函数返回 TRUE。
用法
is_file(file)
提示和注释
该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
测试案例
<?php
$file = "test.txt";
if (is_file($file)) {
echo ("$file is a regular file");
} else {
echo ("$file is not a regular file");
}
?>
结果
test.txt is a regular file
is_link()
作用
is_link() 函数检查指定的文件是否是一个连接。
如果文件是一个连接,该函数返回 TRUE。
用法
is_link(file)
提示和注释
该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
测试案例
<?php
$link = "images";
if (is_link($link)) {
echo ("$link is a link");
} else {
echo ("$link is not a link");
}
?>
结果
images is not a link
is_readable()
作用
is_readable() 函数检查指定的文件是否可读。
如果文件可读,该函数返回 TRUE
用法
is_readable(file)
提示和注释
注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
测试案例
<?php
$file = "test.txt";
if (is_readable($file)) {
echo ("$file is readable");
} else {
echo ("$file is not readable");
}
?>
结果
test.txt is readable
is_uploaded_file()
作用
is_uploaded_file() 函数检查指定的文件是否是通过 HTTP POST 上传的。
如果文件是通过 HTTP POST 上传的,该函数返回 TRUE。
用法
is_uploaded_file(file)
提示和注释
注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
测试案例
<?php
$file = "test.txt";
if(is_uploaded_file($file)) {
echo ("$file is uploaded via HTTP POST");
} else {
echo ("$file is not uploaded via HTTP POST");
}
?>
结果
test.txt is not uploaded via HTTP POST
is_writable()
作用
is_writable() 函数检查指定的文件是否可写。
如果文件可写,该函数返回 TRUE。是通过 HTTP POST 上传的,该函数返回 TRUE。
用法
is_writable(file)
提示和注释
注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
测试案例
<?php
$file = "test.txt";
if (is_writable($file)) {
echo ("$file is writeable");
} else {
echo ("$file is not writeable");
}
?>
结果
test.txt is writeable
is_writeable()
作用
is_writeable() 函数检查指定的文件是否可写。
如果文件可写,该函数返回 TRUE。
该函数是 is_writable() 函数的别名。如果文件可写,该函数返回 TRUE。是通过 HTTP POST 上传的,该函数返回 TRUE。
用法
is_writeable(file)
提示和注释
注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
测试案例
<?php
$file = "test.txt";
if (is_writeable($file)) {
echo ("$file is writeable");
} else {
echo ("$file is not writeable");
}
?>
结果
test.txt is writeable
link()
作用
link() 函数创建一个从指定名称连接的现存目标文件开始的硬连接。
如果成功,该函数返回 TRUE。如果失败,则返回 FALSE。
用法
link(target,link)
target 必需。
link 必需。
提示和注释
注释:这不是一个 HTML 连接,而是一个文件系统中的连接。
注释:该函数不能作用于远程文件。
测试案例
<?php
$target = 'source.ext'; // This is the file that already exists
$link = 'newfile.ext'; // This the filename that you want to link it to
link($target, $link);
?>
linkinfo()
作用
linkinfo() 函数返回有关一个硬连接的信息。
该函数返回设备 ID,如果失败则返回 FALSE。
用法
linkinfo(path)
path 必需。规定要检查的路径。
提示和注释
注释:这不是一个 HTML 连接,而是一个文件系统中的连接。
注释:该函数不能在 Windows 平台上执行。
测试案例
<?php
echo linkinfo('/vmlinuz'); // 835
?>
lstat()
作用
lstat() 函数返回关于文件或符号连接的信息。
该函数将返回一个包含下列元素的数组:
[0] 或 [dev] - 设备编号
[1] 或 [ino] - inode 编号
[2] 或 [mode] - inode 保护模式
[3] 或 [nlink] - 连接数目
[4] 或 [uid] - 所有者的用户 ID
[5] 或 [gid] - 所有者的组 ID
[6] 或 [rdev] - inode 设备类型
[7] 或 [size] - 文件大小的字节数
[8] 或 [atime] - 上次访问时间(Unix 时间戳)
[9] 或 [mtime] - 上次修改时间(Unix 时间戳)
[10] 或 [ctime] - 上次 inode 改变时间(Unix 时间戳)
[11] 或 [blksize] - 文件系统 IO 的块大小(如果支持)
[12] 或 [blocks] - 所占据块的数目
用法
lstat(file)
path 必需。规定要检查的路径。
提示和注释
注释:从这个函数返回的结果与服务器到服务器的结果是不相同的。这个数组包含了数字索引、名称索引或同时包含上述二者。
注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
提示:lstat() 函数与 stat() 函数大致类似。唯一的不同点就是,如果 file 参数是一个符号连接,那么将返回该符号连接的状态(而不是该符号连接所指向的文件的状态)。
测试案例
<?php
print_r(lstat("test.txt"));
?>
结果
Array
(
[0] => 0
[1] => 0
[2] => 33206
[3] => 1
[4] => 0
[5] => 0
[6] => 0
[7] => 92
[8] => 1141633430
[9] => 1141298003
[10] => 1138609592
[11] => -1
[12] => -1
[dev] => 0
[ino] => 0
[mode] => 33206
[nlink] => 1
[uid] => 0
[gid] => 0
[rdev] => 0
[size] => 92
[atime] => 1141633430
[mtime] => 1141298003
[ctime] => 1138609592
[blksize] => -1
[blocks] => -1
)
参考
本作品采用《CC 协议》,转载必须注明作者和本文链接
这学习态度,必须点赞啊