(PHP 3, PHP 4, PHP 5)
file -- 把整个文件读入一个数组中和 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 。
(PHP 3, PHP 4, PHP 5)
chmod -- 改变文件模式尝试将 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()函数与其类似,想知道自己去看用户手册
(PHP 3, PHP 4, PHP 5)
fread -- 读取文件(可安全用于二进制文件)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() ,它的性能比上面的代码好得多。
(PHP 3, PHP 4, PHP 5)
fwrite -- 写入文件(可安全用于二进制文件)fwrite() 把 string 的内容写入 文件指针 handle 处。 如果指定了 length ,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。
fwrite() 返回写入的字符数,出现错误时则返回 FALSE 。
注意如果给出了 length 参数,则 magic_quotes_runtime 配置选项将被忽略,而 string 中的斜线将不会被抽去。
注: 在区分二进制文件和文本文件的系统上(如 Windows) 打开文件时,fopen() 函数的 mode 参数要加上 'b'。
例子 1. 一个简单的 fwrite() 例子
|
(PHP 3, PHP 4, PHP 5)
file_exists -- 检查文件或目录是否存在如果由 filename 指定的文件或目录存在则返回 TRUE ,否则返回 FALSE 。
在 Windows 中要用 //computername/share/filename 或者 //computername/share/filename 来检查网络中的共享文件。
例子 1. 测试一个文件是否存在
|
注: 本函数的结果会被缓存。更多信息参见 clearstatcache() 。
提示: 自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考附录 L 来看哪些 wrapper 支持 stat() 系列函数的功能。
警告 |
如果因为安全模式 的限制而导致不能访问文件的话,该函数会返回 FALSE 。然而,如果文件在 safe_mode_include_dir 所指定的目录内的话,仍然可以使用 include 来包含。 |
(PHP 3, PHP 4, PHP 5)
fseek -- 在文件指针中定位在与 handle 关联的文件中设定文件指针位置。新位置,从文件头开始以字节数度量,是以 whence 指定的位置加上 offset 。whence 的值定义为:
SEEK_SET - 设定位置等于 offset 字节。 |
SEEK_CUR - 设定位置为当前位置加上 offset 。 |
SEEK_END - 设定位置为文件尾加上 offset 。(要移动到文件尾之前的位置,需要给 offset 传递一个负值。) |
如果没有指定 whence ,默认为 SEEK_SET 。
成功则返回 0;否则返回 -1。注意移动到 EOF 之后的位置不算错误。
例子 1. fseek() 例子
|
可能不能用于在 fopen() 中以 "http://" 或 "ftp://" 格式打开所返回的文件指针。在附加模式(加参数 "a" 打开文件)中 ftell() 会返回未定义错误。
注: whence 参数是 PHP 4.0.0 之后增加的。
注: 如果你使用附加模试("a" 或 "a+"),任何写入文件数据都会被附加上去,而文件的位置将会被忽略。
(PHP 3, PHP 4, PHP 5)
copy -- 拷贝文件将文件从 source 拷贝到 dest 。如果成功则返回 TRUE ,失败则返回 FALSE 。
例子 1. copy() 例子
|
如果要移动文件的话,请使用 rename() 函数。
注: 从 PHP 4.3.0 开始,如果启用了“fopen wrappers”的话,source 和 dest 都可以是 URL。更多细节见 fopen() 。如果 dest 是一个 URL,则如果封装协议不支持覆盖已有的文件时拷贝操作会失败。
警告 |
如果目标文件已存在,将会被覆盖。 |
(PHP 4 >= 4.3.0, PHP 5)
file_get_contents -- 将整个文件读入一个字符串和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE 。
file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。
注: 如果要打开有特殊字符的 URL (比如说有空格),就需要使用 urlencode() 进行 URL 编码。
注: context 参数可以用 NULL 来忽略。
版本 | 说明 |
---|---|
5.0.0 | 添加了对 context 的支持。 |
5.1.0 | 添加了 offset 和 maxlen 参数。 |
注: 本函数可安全用于二进制对象。
(PHP 5)
file_put_contents -- 将一个字符串写入文件和依次调用 fopen() ,fwrite() 以及 fclose() 功能一样。
参数 data 可以是数组(但不能为多元数组),这就相当于 file_put_contents($filename, join('', $array))
自 PHP 5.1.0 起,data 参数也可以被指定为 stream 资源,这里 stream 中所保存的缓存数据将被写入到指定文件中,这种用法就相似于使用 stream_copy_to_stream() 函数。
要被写入数据的文件名
要写入的数据。类型可以是 string 、 array 或者是 stream 资源(如上面所说的那样).
flags 可以是 FILE_USE_INCLUDE_PATH , FILE_APPEND 和/或 LOCK_EX (获得一个独占锁定),然而使用 FILE_USE_INCLUDE_PATH 时要特别谨慎。
一个 context 资源
该函数将返回写入到文件内数据的字节数
版本 | 说明 |
---|---|
5.1.0 | 添加了对 LOCK_EX 的支持和 data 参数处理 stream 资源的功能。 |
注: 本函数可安全用于二进制对象