php怎么浏览文件(PHP访问文件)
php怎么浏览文件(PHP访问文件)
2024-11-06 12:13:44  作者:舊電影  网址:https://m.xinb2b.cn/life/eeu301326.html

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 "读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

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\nxyz";//文件内容

$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>";

}

}

?>

结果:


  • 汉代人物趣事(给太子洗马的官儿)
  • 2024-11-06给太子洗马的官儿李大嘴大嘴读史《史记·汲郑列传》里讲了汲黯和郑庄的故事说实在的,这俩人的故事都没多大意思,反而是汲黯曾经担任过太子洗马的官职,引起了大嘴的兴趣太子洗马是一个比较搞笑、很容易引起误解的官职从源头来看,“。
  • 说说简短爱情句子(简短的爱情句子推荐)
  • 2024-11-06简短的爱情句子推荐爱情是两颗灵魂的结合我自是年少,韶华倾覆明夕何夕,君已陌路愿得一人心,白首不相离心里有座城,葬着未亡人我执你之手,与你共白头请别在分手的时候对我温柔爱你的感觉,永远那么美晓来雨后,一池萍碎繁花似锦,人。
  • 创维电视信号源每次都要设置(创维电视信号源设置方法)
  • 2024-11-06创维电视信号源设置方法创维电视可以设置开机信号源,这样当开机后就自动启动到机顶盒不需要额外的操作了例如酷开系统4.2:第一步:打开电视进入主页,选择【我的】--【电视设置】第二步:进入【系统设置】第三步:操作遥控器选择【开。
  • 王源鬼畜歌曲(王源唱两只蝴蝶贼好听)
  • 2024-11-06王源唱两只蝴蝶贼好听《青春旅社》开播了!!!王源作为常驻嘉宾,超卖力的拉客哎~王源简直男友力max!一听到订单的声音,火速跑到分叉路口和戴军队抢客人王源的抢客秘诀:二话不说直接上去就扛起姑娘们的箱子就走(笑cry)单手一。
  • 多去享受生活的句子(关于享受生活的句子)
  • 2024-11-06关于享受生活的句子一个人,只有永远拥有充满梦想和激情的心灵,才能真正懂得生活的意义,也才能从真正的意义上享受生活!世界上的一队小小的漂泊者呀,请留下你们的足印在我的文字里享受生活,并不是只享受她风花雪月的轻松,也不是只。
  • 我变了我自己还觉得没变(我变了我没变)
  • 2024-11-06我变了我没变我做了那么多改变只为了我心中的那一份信念我会一直初心不变我只是为了想让你看见我做了那么多改变只是为了我心中那份执念我会一直初心不变只是为了我心中不变,。
  • 胡兵瞿颖采访接吻(胡兵瞿颖20年经典CP)
  • 2024-11-06胡兵瞿颖20年经典CP上次提起胡兵的时候,想到了他的老搭档:瞿颖忆往昔,他们也是一对经典的荧屏CP,两个人都是模特出身,身材高挑,男帅女靓,生活里是好友,拍起戏来默契十足,非常登对虽然我觉得看他们合作很有爱,但感觉他们谁也。
  • 大路朝天电视剧剧情(主演都有谁)
  • 2024-11-06主演都有谁剧情简介:在社会主义道路上,中国公路的发展和人民命运紧密相连的《大路朝天》以四川公路建设为切口,以成雅高速、雅西高速、雅康高速建设为题材,通过讲述祖孙三代路桥工人伴随改革开放40年经历的命运和情感故事。
  • 山东萝卜特产(山东老师课上分特产萝卜给学生吃)
  • 2024-11-06山东老师课上分特产萝卜给学生吃11月9日,山东潍坊,当地高校一位英语老师在课堂上给学生们分萝卜吃在场的学生称,正好是潍坊吃萝卜的季节,老师就想让我们尝尝当地特产的大萝卜,大家都觉得老师很可爱(来源:潇湘晨报微博)更多精彩资讯请在应。
  • 蔡全无徐慧珍买古董(精品汇微拍第84波)
  • 2024-11-06精品汇微拍第84波【点击↑蓝字精品导报│关注导报君生活U起来】谢谢支持微信“jingpinhui1511”加关注进群或长按上方“精品汇”二维码关注进群,即可在群中参与竞拍拍卖价格并不代表各位书画家真实润格第84期“精品。
  • 口罩夹怎么用(口罩夹如何使用呢)
  • 2024-11-06口罩夹如何使用呢平铺口罩到鼻梁中间,下拉口罩包裹下巴,两边耳朵勾住,右手大拇指与食指按压鼻梁,使口罩紧贴鼻梁,密不透风口罩夹,位于口罩上方,除了用于辨别口罩正反面,更重要的作用是,夹紧鼻梁,做到相对密封,空气才会通过。