file
说明
array file ( string filename [, int use_include_path [, resource context]] )和 readfile() 一样,只除了 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败 file() 返回 FALSE 。
如果也想在 include_path 中搜寻文件的话,可以将可选参数 use_include_path 设为 "1"。
<?php |
提示: 如果“fopen wrappers” 已经被激活,则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表:附录 L 。
注: 返回的数组中每一行都包括了行结束符,因此如果不需要行结束符时还需要使用 rtrim() 函数。
注: 如果碰到 PHP 在读取文件时不能识别 Macintosh 文件的行结束符,可以激活 auto_detect_line_endings 运行时配置选项。
注: 从 PHP 4.3.0 开始可以用 file_get_contents() 来将文件读入到一个字符串返回。
从 PHP 4.3.0 开始 file() 可以安全用于二进制文件。
注: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明请参考参考 CXLI, Stream Functions 。
chmod
说明
bool chmod ( string filename, int mode )尝试将 filename 所指定文件的模式改成 mode 所给定的。
注意 mode 不会被自动当成八进制数值,而且也不能用字符串(例如 "g+w")。要确保正确操作,需要给 mode 前面加上 0:
<?php |
mode 参数包含三个八进制数按顺序分别指定了所有者、所有者所在的组以及所有人的访问限制。每一部分都可以通过加入所需的权限来计算出所要的权限。数字 1 表示使文件可执行,数字 2 表示使文件可写,数字 4 表示使文件可读。加入这些数字来制定所需要的权限。有关 UNIX 系统的文件权限可以阅读手册“man 1 chmod”和“man 2 chmod”。
<?php |
如果成功则返回 TRUE ,失败则返回 FALSE 。
注: 当前用户指的是执行 PHP 的用户。很可能和通常的 shell 或者 FTP 用户不是同一个。在大多数系统下文件模式只能被文件所有者的用户改变。
注: 本函数不能作用于远程文件 ,被检查的文件必须通过服务器的文件系统访问。
注: 当安全模式 打开的时候,PHP 会检查所操作的文件是否和正在执行的脚本具有相同的 UID (所有者)。要注意的是,不能修改 SUID,SGID 和 sticky bits。
还有chgrp()和chown()函数与其类似,想知道自己去看用户手册
fread
说明
string fread ( int handle, int length )fread() 从文件指针 handle 读取最多 length 个字节。 该函数在读取完 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。
// get contents of a file into a string |
警告 |
在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen() 函数的 mode 参数要加上 'b'。 |
$filename = "c://files//somepic.gif"; |
警告 |
当从网络流或者管道读取时,例如在读取从远程文件 或 popen() 以及 proc_open() 的返回时,读取会在一个包可用之后停止。这意味着你应该如下例所示将数据收集起来合并成大块。 |
<?php |
注: 如果你只是想将一个文件的内容读入到一个字符串中,用 file_get_contents() ,它的性能比上面的代码好得多。
fwrite
说明
int fwrite ( resource handle, string string [, int length] )fwrite() 把 string 的内容写入 文件指针 handle 处。 如果指定了 length ,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。
fwrite() 返回写入的字符数,出现错误时则返回 FALSE 。
注意如果给出了 length 参数,则 magic_quotes_runtime 配置选项将被忽略,而 string 中的斜线将不会被抽去。
注: 在区分二进制文件和文本文件的系统上(如 Windows) 打开文件时,fopen() 函数的 mode 参数要加上 'b'。
file_exists
说明
bool file_exists ( string filename )如果由 filename 指定的文件或目录存在则返回 TRUE ,否则返回 FALSE 。
在 Windows 中要用 //computername/share/filename 或者 //computername/share/filename 来检查网络中的共享文件。
注: 本函数的结果会被缓存。更多信息参见 clearstatcache() 。
警告 |
如果因为安全模式 的限制而导致不能访问文件的话,该函数会返回 FALSE 。然而,如果文件在 safe_mode_include_dir 所指定的目录内的话,仍然可以使用 include 来包含。 |
fseek
说明
int fseek ( resource handle, int offset [, int whence] )在与 handle 关联的文件中设定文件指针位置。新位置,从文件头开始以字节数度量,是以 whence 指定的位置加上 offset 。whence 的值定义为:
SEEK_SET - 设定位置等于 offset 字节。 |
SEEK_CUR - 设定位置为当前位置加上 offset 。 |
SEEK_END - 设定位置为文件尾加上 offset 。(要移动到文件尾之前的位置,需要给 offset 传递一个负值。) |
如果没有指定 whence ,默认为 SEEK_SET 。
成功则返回 0;否则返回 -1。注意移动到 EOF 之后的位置不算错误。
可能不能用于在 fopen() 中以 "http://" 或 "ftp://" 格式打开所返回的文件指针。在附加模式(加参数 "a" 打开文件)中 ftell() 会返回未定义错误。
注: whence 参数是 PHP 4.0.0 之后增加的。
注: 如果你使用附加模试("a" 或 "a+"),任何写入文件数据都会被附加上去,而文件的位置将会被忽略。
copy
file_get_contents
说明
string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE 。
file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。
注: 如果要打开有特殊字符的 URL (比如说有空格),就需要使用 urlencode() 进行 URL 编码。
注: context 参数可以用 NULL 来忽略。
file_put_contents
说明
int file_put_contents ( string filename, string data [, int flags [, resource context]] )和依次调用 fopen() ,fwrite() 以及 fclose() 功能一样。
参数 data 可以是数组(但不能为多元数组),这就相当于 file_put_contents($filename, join('', $array))
自 PHP 5.1.0 起,data 参数也可以被指定为 stream 资源,这里 stream 中所保存的缓存数据将被写入到指定文件中,这种用法就相似于使用 stream_copy_to_stream() 函数。