<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Filesystem 文件系统函数</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="函数参考" HREF="funcref.html"><LINK REL="PREVIOUS" TITLE="filepro" HREF="function.filepro.html"><LINK REL="NEXT" TITLE="basename" HREF="function.basename.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="reference" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP 手册</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.filepro.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.basename.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="reference" ><A NAME="ref.filesystem" ></A ><DIV CLASS="TITLEPAGE" ><H1 CLASS="title" >XL. Filesystem 文件系统函数</H1 ><DIV CLASS="PARTINTRO" ><A NAME="AEN51796" ></A ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="filesystem.intro" >简介</A ></H1 ><P > </P ></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="filesystem.requirements" >需求</A ></H1 ><P > 无需外部库文件就可以加入本扩展模块的支持。但如要使 PHP 在 Linux 上支持 LFS(大文件)的话,必须有最新的 glibc 并在编译时加入参数:<TT CLASS="literal" >-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64</TT >。 </P ></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="filesystem.installation" >安装</A ></H1 ><P >本扩展模块作为 PHP 内核的一部分,无需安装即可使用。</P ></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="filesystem.configuration" >运行时配置</A ></H1 ><P >这些函数的行为受 <TT CLASS="filename" >php.ini</TT > 的影响。</P ><P > <DIV CLASS="table" ><A NAME="AEN51812" ></A ><P ><B >表 1. 文件系统和流配置选项</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><COL><COL><THEAD ><TR ><TH >名称</TH ><TH >默认值</TH ><TH >可修改范围</TH ><TH >更新记录</TH ></TR ></THEAD ><TBODY ><TR ><TD >allow_url_fopen</TD ><TD >"1"</TD ><TD >PHP_INI_SYSTEM</TD ><TD >在 PHP <= 4.3.4 时是 PHP_INI_ALL。PHP 4.0.4 版以后可用。</TD ></TR ><TR ><TD >user_agent</TD ><TD >NULL</TD ><TD >PHP_INI_ALL</TD ><TD >PHP 4.3.0 版以后可用。</TD ></TR ><TR ><TD >default_socket_timeout</TD ><TD >"60"</TD ><TD >PHP_INI_ALL</TD ><TD >PHP 4.3.0 版以后可用。</TD ></TR ><TR ><TD >from</TD ><TD >""</TD ><TD >PHP_INI_ALL</TD ><TD > </TD ></TR ><TR ><TD >auto_detect_line_endings</TD ><TD >"0"</TD ><TD >PHP_INI_ALL</TD ><TD >PHP 4.3.0 版以后可用。</TD ></TR ></TBODY ></TABLE ></DIV > </P ><P >以下是配置选项的简要解释。</P ><P > <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><A NAME="ini.allow-url-fopen" ></A ><CODE CLASS="parameter" >allow_url_fopen</CODE > <A HREF="language.types.boolean.html" ><B CLASS="type" >boolean</B ></A ></DT ><DD ><P > 本选项激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象例如文件。默认的封装协议提供用 ftp 和 http 协议来访问<A HREF="features.remote-files.html" >远程文件</A >,一些扩展库例如 <A HREF="ref.zlib.html" >zlib</A > 可能会注册更多的封装协议。 </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 出于安全性考虑,此选项只能在 php.ini 中设置。 </P ></BLOCKQUOTE ></DIV ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 此选项是紧接着版本 4.0.3 发布后引进的。版本 4.0.3 以及之前的版本只能在编译时通过配置项 <A HREF="configure.html#configure.disable-url-fopen-wrapper" ><CODE CLASS="parameter" > --disable-url-fopen-wrapper</CODE ></A > 来取消此特性。 </P ></BLOCKQUOTE ></DIV ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" BORDER="1" WIDTH="100%" ><TR ><TD ALIGN="CENTER" ><B >警告</B ></TD ></TR ><TR ><TD ALIGN="LEFT" ><P > Windows 版在 PHP 4.3.0 之前,以下函数不支持远程文件访问:<A HREF="function.include.html" ><B CLASS="function" >include()</B ></A >,<A HREF="function.include-once.html" ><B CLASS="function" >include_once()</B ></A >, <A HREF="function.require.html" ><B CLASS="function" >require()</B ></A >,<A HREF="function.require-once.html" ><B CLASS="function" >require_once()</B ></A > 和<A HREF="ref.image.html" >参考 LXV, <I >Image 图像函数</I ></A >中的 imagecreatefromXXX 函数。 </P ></TD ></TR ></TABLE ></DIV ></DD ><DT ><A NAME="ini.user-agent" ></A ><CODE CLASS="parameter" >user_agent</CODE > <A HREF="language.types.string.html" ><B CLASS="type" >string</B ></A ></DT ><DD ><P > 定义 PHP 发送的 User-Agent。 </P ></DD ><DT ><A NAME="ini.default-socket-timeout" ></A ><CODE CLASS="parameter" >default_socket_timeout</CODE > <A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A ></DT ><DD ><P > 基于 socket 的流的默认超时时间(秒)。 </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 本配置参数是 PHP 4.3.0 引进的。 </P ></BLOCKQUOTE ></DIV ></DD ><DT ><A NAME="ini.from" ></A ><CODE CLASS="parameter" >from</CODE > <A HREF="language.types.string.html" ><B CLASS="type" >string</B ></A ></DT ><DD ><P > 定义匿名 ftp 的密码(email 地址)。 </P ></DD ><DT ><A NAME="ini.auto-detect-line-endings" ></A ><CODE CLASS="parameter" >auto_detect_line_endings</CODE > <A HREF="language.types.boolean.html" ><B CLASS="type" >boolean</B ></A ></DT ><DD ><P > 当设为 On 时,PHP 将检查通过 <A HREF="function.fgets.html" ><B CLASS="function" >fgets()</B ></A > 和 <A HREF="function.file.html" ><B CLASS="function" >file()</B ></A > 取得的数据中的行结束符号是符合 Unix,MS-DOS,还是 Macintosh 的习惯。 </P ><P > 这使得 PHP 可以和 Macintosh 系统交互操作,但是默认值是 Off,因为在检测第一行的 EOL 习惯时会有很小的性能损失,而且在 Unix 系统下使用回车符号作为项目分隔符的人们会遭遇向下不兼容的行为。 </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 本配置参数是 PHP 4.3.0 引进的。 </P ></BLOCKQUOTE ></DIV ></DD ></DL ></DIV > </P ></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="filesystem.resources" >资源类型</A ></H1 ><P > </P ></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="filesystem.constants" >预定义常量</A ></H1 ><P >以下常量由本扩展模块定义,因此只有在本扩展模块被编译到 PHP 中,或者在运行时被动态加载后才有效。</P ><P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="constant" ><B >GLOB_BRACE</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >GLOB_ONLYDIR</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >GLOB_MARK</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >GLOB_NOSORT</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >GLOB_NOCHECK</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >GLOB_NOESCAPE</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >PATHINFO_DIRNAME</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >PATHINFO_BASENAME</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >PATHINFO_EXTENSION</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >FILE_USE_INCLUDE_PATH</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >FILE_APPEND</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >FILE_IGNORE_NEW_LINES</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >FILE_SKIP_EMPTY_LINES</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ></DL ></DIV ></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="filesystem.seealso" >参见</A ></H1 ><P > 相关函数参见<A HREF="ref.dir.html" >目录函数</A >和<A HREF="ref.exec.html" >程序执行函数</A >。 </P ><P > 有关可以用于远程文件的各种 URL 封装协议的说明列表,参见<A HREF="wrappers.html" >附录 N</A >。 </P ></DIV ></DIV ><DIV CLASS="TOC" ><DL ><DT ><B >目录</B ></DT ><DT ><A HREF="function.basename.html" >basename</A > -- 返回路径中的文件名部分</DT ><DT ><A HREF="function.chgrp.html" >chgrp</A > -- 改变文件所属的组</DT ><DT ><A HREF="function.chmod.html" >chmod</A > -- 改变文件模式</DT ><DT ><A HREF="function.chown.html" >chown</A > -- 改变文件的所有者</DT ><DT ><A HREF="function.clearstatcache.html" >clearstatcache</A > -- 清除文件状态缓存</DT ><DT ><A HREF="function.copy.html" >copy</A > -- 拷贝文件</DT ><DT ><A HREF="function.delete.html" >delete</A > -- 参见 <A HREF="function.unlink.html" ><B CLASS="function" >unlink()</B ></A > 或 <A HREF="function.unset.html" ><B CLASS="function" >unset()</B ></A ></DT ><DT ><A HREF="function.dirname.html" >dirname</A > -- 返回路径中的目录部分</DT ><DT ><A HREF="function.disk-free-space.html" >disk_free_space</A > -- 返回目录中的可用空间</DT ><DT ><A HREF="function.disk-total-space.html" >disk_total_space</A > -- 返回一个目录的磁盘总大小</DT ><DT ><A HREF="function.diskfreespace.html" >diskfreespace</A > -- <A HREF="function.disk-free-space.html" ><B CLASS="function" >disk_free_space()</B ></A > 的别名</DT ><DT ><A HREF="function.fclose.html" >fclose</A > -- 关闭一个已打开的文件指针</DT ><DT ><A HREF="function.feof.html" >feof</A > -- 测试文件指针是否到了文件结束的位置</DT ><DT ><A HREF="function.fflush.html" >fflush</A > -- 将缓冲内容输出到文件</DT ><DT ><A HREF="function.fgetc.html" >fgetc</A > -- 从文件指针中读取字符</DT ><DT ><A HREF="function.fgetcsv.html" >fgetcsv</A > -- 从文件指针中读入一行并解析 CSV 字段</DT ><DT ><A HREF="function.fgets.html" >fgets</A > -- 从文件指针中读取一行</DT ><DT ><A HREF="function.fgetss.html" >fgetss</A > -- 从文件指针中读取一行并过滤掉 HTML 标记</DT ><DT ><A HREF="function.file-exists.html" >file_exists</A > -- 检查文件或目录是否存在</DT ><DT ><A HREF="function.file-get-contents.html" >file_get_contents</A > -- 将整个文件读入一个字符串</DT ><DT ><A HREF="function.file-put-contents.html" >file_put_contents</A > -- 将一个字符串写入文件</DT ><DT ><A HREF="function.file.html" >file</A > -- 把整个文件读入一个数组中</DT ><DT ><A HREF="function.fileatime.html" >fileatime</A > -- 取得文件的上次访问时间</DT ><DT ><A HREF="function.filectime.html" >filectime</A > -- 取得文件的 inode 修改时间</DT ><DT ><A HREF="function.filegroup.html" >filegroup</A > -- 取得文件的组</DT ><DT ><A HREF="function.fileinode.html" >fileinode</A > -- 取得文件的 inode</DT ><DT ><A HREF="function.filemtime.html" >filemtime</A > -- 取得文件修改时间</DT ><DT ><A HREF="function.fileowner.html" >fileowner</A > -- 取得文件的所有者</DT ><DT ><A HREF="function.fileperms.html" >fileperms</A > -- 取得文件的权限</DT ><DT ><A HREF="function.filesize.html" >filesize</A > -- 取得文件大小</DT ><DT ><A HREF="function.filetype.html" >filetype</A > -- 取得文件类型</DT ><DT ><A HREF="function.flock.html" >flock</A > -- 轻便的咨询文件锁定</DT ><DT ><A HREF="function.fnmatch.html" >fnmatch</A > -- 用模式匹配文件名</DT ><DT ><A HREF="function.fopen.html" >fopen</A > -- 打开文件或者 URL</DT ><DT ><A HREF="function.fpassthru.html" >fpassthru</A > -- 输出文件指针处的所有剩余数据</DT ><DT ><A HREF="function.fputcsv.html" >fputcsv</A > -- 将行格式化为 CSV 并写入文件指针</DT ><DT ><A HREF="function.fputs.html" >fputs</A > -- <A HREF="function.fwrite.html" ><B CLASS="function" >fwrite()</B ></A > 的别名</DT ><DT ><A HREF="function.fread.html" >fread</A > -- 读取文件(可安全用于二进制文件)</DT ><DT ><A HREF="function.fscanf.html" >fscanf</A > -- 从文件中格式化输入</DT ><DT ><A HREF="function.fseek.html" >fseek</A > -- 在文件指针中定位</DT ><DT ><A HREF="function.fstat.html" >fstat</A > -- 通过已打开的文件指针取得文件信息</DT ><DT ><A HREF="function.ftell.html" >ftell</A > -- 返回文件指针读/写的位置</DT ><DT ><A HREF="function.ftruncate.html" >ftruncate</A > -- 将文件截断到给定的长度</DT ><DT ><A HREF="function.fwrite.html" >fwrite</A > -- 写入文件(可安全用于二进制文件)</DT ><DT ><A HREF="function.glob.html" >glob</A > -- 寻找与模式匹配的文件路径</DT ><DT ><A HREF="function.is-dir.html" >is_dir</A > -- 判断给定文件名是否是一个目录</DT ><DT ><A HREF="function.is-executable.html" >is_executable</A > -- 判断给定文件名是否可执行</DT ><DT ><A HREF="function.is-file.html" >is_file</A > -- 判断给定文件名是否为一个正常的文件</DT ><DT ><A HREF="function.is-link.html" >is_link</A > -- 判断给定文件名是否为一个符号连接</DT ><DT ><A HREF="function.is-readable.html" >is_readable</A > -- 判断给定文件名是否可读</DT ><DT ><A HREF="function.is-uploaded-file.html" >is_uploaded_file</A > -- 判断文件是否是通过 HTTP POST 上传的</DT ><DT ><A HREF="function.is-writable.html" >is_writable</A > -- 判断给定的文件名是否可写</DT ><DT ><A HREF="function.is-writeable.html" >is_writeable</A > -- <A HREF="function.is-writable.html" ><B CLASS="function" >is_writable()</B ></A > 的别名</DT ><DT ><A HREF="function.lchgrp.html" >lchgrp</A > -- Changes group ownership of symlink</DT ><DT ><A HREF="function.lchown.html" >lchown</A > -- Changes user ownership of symlink</DT ><DT ><A HREF="function.link.html" >link</A > -- 建立一个硬连接</DT ><DT ><A HREF="function.linkinfo.html" >linkinfo</A > -- 获取一个连接的信息</DT ><DT ><A HREF="function.lstat.html" >lstat</A > -- 给出一个文件或符号连接的信息</DT ><DT ><A HREF="function.mkdir.html" >mkdir</A > -- 新建目录</DT ><DT ><A HREF="function.move-uploaded-file.html" >move_uploaded_file</A > -- 将上传的文件移动到新位置</DT ><DT ><A HREF="function.parse-ini-file.html" >parse_ini_file</A > -- 解析一个配置文件</DT ><DT ><A HREF="function.pathinfo.html" >pathinfo</A > -- 返回文件路径的信息</DT ><DT ><A HREF="function.pclose.html" >pclose</A > -- 关闭进程文件指针</DT ><DT ><A HREF="function.popen.html" >popen</A > -- 打开进程文件指针</DT ><DT ><A HREF="function.readfile.html" >readfile</A > -- 输出一个文件</DT ><DT ><A HREF="function.readlink.html" >readlink</A > -- 返回符号连接指向的目标</DT ><DT ><A HREF="function.realpath.html" >realpath</A > -- 返回规范化的绝对路径名</DT ><DT ><A HREF="function.rename.html" >rename</A > -- 重命名一个文件或目录</DT ><DT ><A HREF="function.rewind.html" >rewind</A > -- 倒回文件指针的位置</DT ><DT ><A HREF="function.rmdir.html" >rmdir</A > -- 删除目录</DT ><DT ><A HREF="function.set-file-buffer.html" >set_file_buffer</A > -- <A HREF="function.stream-set-write-buffer.html" ><B CLASS="function" >stream_set_write_buffer()</B ></A > 的别名</DT ><DT ><A HREF="function.stat.html" >stat</A > -- 给出文件的信息</DT ><DT ><A HREF="function.symlink.html" >symlink</A > -- 建立符号连接</DT ><DT ><A HREF="function.tempnam.html" >tempnam</A > -- 建立一个具有唯一文件名的文件</DT ><DT ><A HREF="function.tmpfile.html" >tmpfile</A > -- 建立一个临时文件</DT ><DT ><A HREF="function.touch.html" >touch</A > -- 设定文件的访问和修改时间</DT ><DT ><A HREF="function.umask.html" >umask</A > -- 改变当前的 umask</DT ><DT ><A HREF="function.unlink.html" >unlink</A > -- 删除文件</DT ></DL ></DIV ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.filepro.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >起始页</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.basename.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >filepro</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="funcref.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >basename</TD ></TR ></TABLE ></DIV ></BODY ></HTML >