简介:1.打开文件定义和用法fopen() 函数打开文件或者 URL。如果打开失败,本函数返回 FALSE。语法fopen(filename,mode,include_path,context)参数描述filename必需。规定要打开的文件或 URL。mode必需。规定要求到该文件/ ...
1.打开文件 定义和用法 fopen() 函数打开文件或者 URL。 如果打开失败,本函数返回 FALSE。 语法 fopen(filename,mode,include_path,context) 参数描述 filename必需。规定要打开的文件或 URL。 mode必需。规定要求到该文件/流的访问类型。可能的值见下表。 include_path可选。如果也需要在 include_path 中检索文件的话,可以将该参数设为 1 或 TRUE。 context可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。 mode 参数的可能的值 mode说明 "r"只读方式打开,将文件指针指向文件头。 "r+"读写方式打开,将文件指针指向文件头。 "w"写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 "w+"读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 "a"写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 "a+"读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 "x" 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。 这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。 此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。 "x+" 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。 这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。 此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。 说明 fopen() 将 filename 指定的名字资源绑定到一个流上。如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。 如果 PHP 认为 filename 指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。 如果 PHP 认为 filename 指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。 例:fopen.php <?php @fopen("file.txt", "r");//只读打开,将文件指针指向文件头 @fopen("file.txt", "w");//写入打开,将文件指针指向文件头 @ 可以屏蔽一些警告信息,但频繁使用 @ 会造成程序运行过慢 ?> 结果: 2.访问文件 1)fread() 定义和用法 fread() 函数读取文件(可安全用于二进制文件)。 语法 fread(file,length) 参数描述 file必需。规定要读取打开文件。 length必需。规定要读取的最大字节数。 说明 fread() 从文件指针 file 读取最多 length 个字节。该函数在读取完最多 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节时就会停止读取文件,视乎先碰到哪种情况。 返回所读取的字符串,如果出错返回 false。 例:fread.php <?php $filename = "file.txt"; //文件名称 $handle = fopen($filename, "r");//只读打开文件句柄指针 $str1 = fread($handle,filesize($filename));//读取文件,按照文件自身大小读取 echo "$str1 = ".$str1."<br><br>";//读取文件内容 fclose($handle);//关闭只读 $handle = fopen($filename, "r");//再次打开只读文件 $str2 = fread($handle,7);//读取文件,按照7个字节读取 换行占两个字节 echo "$str2 = ".$str2;//读取文件内容 fclose($handle);//关闭只读 ?> 结果: 注:读取文件3个步骤 调用fopen函数打开文件句柄 调用fread等文件读取函数 调用fclose函数关闭文件句柄 2)fgets() 定义和用法 fgets() 函数从文件指针中读取一行。 语法 fgets(file,length) 参数描述 file必需。规定要读取的文件。 length可选。规定要读取的字节数。默认是 1024 字节。 说明 从 file 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(要看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。 若失败,则返回 false。 例:fgets.php <?php $handle = @fopen("file.txt", "r");//打开只读句柄 $i = 0;//定义变量存储行数 while (!feof($handle)) { //函数检测是否已到达文件末尾 (eof) 是或者错误返回true $buffer = fgets($handle, 4096); //句柄处读取行内容 字节大小为4096-1的内容 $i = $i + 1;//计数 echo "第 $i 行".$buffer."<br>";//打印读取几行内容 } fclose($handle);//关闭句柄 ?> 结果: 注: 定义和用法 feof() 函数检测是否已到达文件末尾 (eof)。 如果文件指针到了 EOF 或者出错时则返回 TRUE,否则返回一个错误(包括 socket 超时),其它情况则返回 FALSE。 语法 feof(file) 参数描述 file必需。规定要检查的打开文件。 说明 file 参数是一个文件指针。这个文件指针必须有效,并且必须指向一个由 fopen() 或 fsockopen() 成功打开(但还没有被 fclose() 关闭)的文件。 3)fgetc() 定义和用法 fgetc() 函数从文件指针中读取一个字符。 语法 fgetc(file) 参数描述 file必需。规定要检查的文件。 说明 返回一个包含有一个字符的字符串,该字符从 file 指向的文件中得到。碰到 EOF 则返回 false。 文件指针必须有效,并且必须指向一个由 fopen() 或 fsockopen() 成功打开(但还没有被 fclose() 关闭)的文件。 例:fgetc.php <?php $fp = @fopen("file.txt", "r");//打开只读句柄 $i = 0;//定义变量存储字符次数 while (false !== ($char = fgetc($fp))) { //读取句柄中每一个字符直到EOF 返回false $i = $i + 1;//计数 echo "第 $i 字符:$char<br>";//打印读取第几个字符 } ?> 结果: 4)file() 定义和用法 file() 函数把整个文件读入一个数组中。 与 file_get_contents() 类似,不同的是 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。 如果失败,则返回 false。 语法 file(path,include_path,context) 参数描述 path必需。规定要读取的文件。 include_path可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。 context 可选。规定文件句柄的环境。 context 是一套可以修改流的行为的选项。若使用 null,则忽略。 说明 对 context 的支持是 PHP 5.0.0 添加的。 返回的数组中每一行都包括了行结束符,因此如果不需要行结束符时还需要使用 rtrim() 函数。 例:file.php <?php $lines = file("file.txt");// 把文件内容存储到$lines 数组里,数组中每个单元都是文件中的一行,包括换行符在内 foreach ($lines as $num => $line) { //foreach方式遍历打印数组内容 echo "第{$num}行: ".$line."<br>"; } ?> 结果: 5)fgetss() 定义和用法 fgetss() 函数从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。 与 fgets() 相同,不同的是 fgetss 尝试从读取的文本中去掉任何 HTML 和 PHP 标记。 语法 fgetss(file,length,tags) 参数描述 file必需。规定要读取的文件。 length可选。规定要读取的字节数。默认是 1024 字节。该参数在 PHP 5 之前是必需的。 tags可选。规定不会被删除的标签。 说明 可以用可选的第三个参数 tags 指定哪些标记不被去掉。 若失败,则返回 false。 例:fgetss.php <?php $handle = @fopen("file.html", "r");//打开只读句柄 $i = 0;//定义变量存储行数 while (!feof($handle)) {//函数检测是否已到达文件末尾 (eof) 是或者错误返回true $lines = fgetss($handle);//从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。 $i = $i + 1;//计数 echo "第{$i}行: ".$lines."<br>";//打印读取几行内容 } ?> file.html <html> <head>title </head> <body> <pre>This is a file. <table> <tr> <td>abcd</td> <td>xyz</td> </tr> </table> </body> </html> 结果: 3.写入文件 1)fwrite 定义和用法 fwrite() 函数写入文件(可安全用于二进制文件)。 语法 fwrite(file,string,length) 参数描述 file必需。规定要写入的打开文件。 string必需。规定要写入文件的字符串。 length可选。规定要写入的最大字节数。 说明 fwrite() 把 string 的内容写入文件指针 file 处。 如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。 fwrite() 返回写入的字符数,出现错误时则返回 false。 例:fwrite.php <?php $filename = "file.txt"; //文件名称 $content = "abcd xyz";//文件内容 $handle = fopen($filename,"a+");//读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 if(fwrite($handle,$content) === false) //返回写入的字符数,出现错误时则返回 false。 { echo "写入{$filename}文件失败";//写入{$filename}文件失败 exit; } echo "写入{$filename}文件成功";//写入{$filename}文件成功 fclose($handle);//关闭句柄 ?> 结果: 2)file_put_contents 定义和用法 file_put_contents() 函数把一个字符串写入文件中。 与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。 语法 file_put_contents(file,data,mode,context) 参数描述 file必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。 data可选。规定要写入文件的数据。可以是字符串、数组或数据流。 mode 可选。规定如何打开/写入文件。可能的值: FILE_USE_INCLUDE_PATH FILE_APPEND LOCK_EX context 可选。规定文件句柄的环境。 context 是一套可以修改流的行为的选项。若使用 null,则忽略。 说明 参数 data 可以是数组(但不能是多维数组)。 自 PHP 5.1.0 起,data 参数也可以被指定为 stream 资源,stream 中所保存的缓存数据将被写入到指定文件中,这种用法就相似于使用 stream_copy_to_stream() 函数。 对 context 参数的支持是 PHP 5.0.0 添加的。 返回值 该函数将返回写入到文件内数据的字节数。 提示和注释 提示:使用 FILE_APPEND 可避免删除文件中已有的内容。 例:file_put_contents.php <?php $content = "file_put_contents";//写入内容 $file = "file.txt";//写入文件 if(file_put_contents($file ,$content) === false)//返回写入的字符数,出现错误时则返回 false。 { echo "写入{$file}文件失败";//写入{$file}文件失败 exit; } echo "写入{$file}文件成功";//写入{$file}文件成功 ?> 结果: 4.复制文件 定义和用法 copy() 函数拷贝文件。 语法 copy(source,destination) 参数描述 source必需。规定要复制的文件。 destination必需。规定复制文件的目的地。 说明 将文件从 source 拷贝到 destination。如果成功则返回 TRUE,否则返回 FALSE。 提示和注释 提示:如果要移动文件的话,请使用 rename() 函数。 例:copy.php <?php $file = "filebak.txt"; //被复制原文件 $newfile = "file.txt";//复制后文件 if (!copy($file, $newfile)) {//如果成功则返回 TRUE,否则返回 FALSE。 echo "文件复制失败:{$file} copy to {$newfile}"; } else { echo "文件复制成功:{$file} copy to {$newfile}"; } ?> 结果: 原文件不存在报错 5.删除文件 定义和用法 unlink() 函数删除文件。 若成功,则返回 true,失败则返回 false。 语法 unlink(filename,context) 参数描述 filename必需。规定要删除的文件。 context可选。规定文件句柄的环境。Context 是可修改流的行为的一套选项。 例:unlink.php <?php $filename = "file.txt"; //要被删除文件 fopen($filename,"a+");//读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 if(!unlink($filename))//若成功,则返回 true,失败则返回 false。 { echo "文件{$filename}删除失败"; } else { echo "文件{$filename}删除成功"; } ?> 结果: 6.重命名文件 定义和用法 rename() 函数重命名文件或目录。 若成功,则该函数返回 true。若失败,则返回 false。 语法 rename(oldname,newname,context) 参数描述 oldname必需。规定要重命名的文件或目录。 newname必需。规定文件或目录的新名称。 context可选。规定文件句柄的环境。context 是可修改流的行为的一套选项。 例:rename.php <?php $filename = "file.txt";//被重命名原文件 $newname = "newfile.txt";//重命名文件 fun_rename($filename,$newname);//调用fun_rename函数 function fun_rename($filename,$newname)//创建函数 形参$filename和$newname { if(!rename($filename,$newname))//若成功,则该函数返回 true。若失败,则返回 false。 { echo "文件{$filename}重命名为{$newname}失败<br>"; } else { echo "文件{$filename}重命名为{$newname}成功<br>"; } } ?> 结果: 本文仅代表作者个人观点,不代表巅云官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱2522407257@qq.com。更多相关资讯,请到巅云www.yinxi.net学习互联网营销技术请到巅云建站www.yx10011.com。 |