基于PHP文件操作的详细诠释


Posted in PHP onJune 21, 2013
$path1= "E:/myphp/text.txt";
if(!file_exists($path1)){
 echo "文件不存在!";
}else{
 $handle1 = fopen($path1, 'r+') or exit("Unable to open file");
// while (!feof($handle1)){
//  echo fgets($handle1)."<br>";
// }
    while(!feof($handle1)){
     echo fgetc($handle1);
    }
}

上面的代码阐释了一个简单的文件读取操作。说明下:
fopen是打开文件资源。
使用方法:
$file=fopen("welcome.txt","r");
具体意思:第一个参数是文件的路径。后面的参数是要求用何种方式打开文件,有下面几种类型:
r  只读。在文件的开头开始。
r+  读/写。在文件的开头开始。
w  只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+  读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a  追加。打开并向文件文件的末端进行写操作,如果文件不存在,则创建新文件。
a+  读/追加。通过向文件末端写内容,来保持文件内容。
x  只写。创建新文件。如果文件已存在,则返回 FALSE。
x+  
读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

注释:如果 fopen() 无法打开指定文件,则返回 0 (false)。
比较常用的是前面的4个。
fgetc:
string fgetc ( resource$handle )
返回一个包含有一个字符的字符串,该字符从 handle 指向的文件中得到。碰到 EOF 则返回FALSE。

fgets:
string fgets ( int$handle [,int$length ] )
从 handle 指向的文件中读取一行并返回长度最多为length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定length,则默认为 1K,或者说 1024 字节。
出错时返回 FALSE。

fgetss:
string fgetss ( resource$handle [,int$length [,string$allowable_tags ]] )
和 fgets() 相同,只除了 fgetss 尝试从读取的文本中去掉任何 HTML 和 PHP 标记。(跟fgets()相同,只是他过滤了html和php的标记而已。)
可以用可选的第三个参数指定哪些标记不被去掉。
feof() 函数检测是否已到达文件末尾 (eof)。

//判断文件或目录是否存在
bool file_exists(string filename)
判断文件或目录是否存在,存在则返回真,否则返回假
格式:

if(file_exists(“hello.txt”))
{
Echo “文件存在”;
}
//打开文件

格式:
fopen(filename,mode)
说明:按指定的格式打开指定的文件
filename:要打开的文件名
mode : 打开模式
fopen(“hello.txt”,”w”);
表示以写的方式打开hello.txt文件

//写文件
格式:
fwrite(resource,string);
说明:在打开的文件中添加指定的内容
resource:打开的文件
string:要写入的内容
例:
$handle = fopen(“hello.txt”,”w”) //若a ,则可追加数据
fwrite($handle,”1\r\n”)

//关闭文件
格式:
fclose($handle)
说明:关闭打开的文件
例:
$handle = fopen(“hello.txt”,”w”);
fclose($handle);

//读取一行数据
格式:
fgets(int handle[,int length])
说明:读取length-1个字符。若没有指定length,则默认字节为1KB,
若遇到换行、EOF或则已经读取了length-1个字符,则程序终止,
出错时候返回false;
例:
$handle = fopen(“hello.txt”,”r”);
$buffer = fgets($handle,1024);
echo $handle; //输出一行信息

//读取整个文件
格式:
readfile(filename)
说明:读取整个文件,并输出到浏览器
例:
<?
readfile(“hello.txt”);
?>

//取文件大小
格式:
filesize(filename)
说明:获取指定文件大小,出错返回false
例:
filesize(“a.rar”)

//删除文件
格式:
unlink()
说明:删除一个文件,成功则返回true,否则返回false
例:
unlink(“b.txt”)

//创建目录
格式:
mkdir(dirname)
说明:创建一个目录
例:mkdir(“newfolder”); //当前目录下创建新文件夹

//删除目录
格式:
rmdir(dirname)
说明:删除一个目录
例:rmdir(“newfolder”);

//取得文件名
格式:
basename(filepath)
说明:从指定的路径中返回文件名
例:
basename(“c:\mytools\a.txt”) //返回a.txt

//获取文件路径信息
pathinfo(path)
说明:返回文件路径信息,结果保存在数组中,数组下标为
dirname(路径) , basename(文件名) , extension(扩展名)
例:pathinfo(“c:\mytools\a.txt”)

//取绝对路径
格式:
realpath(filename)
说明:取指定文件的绝对路径,失败则返回false
例:realpath(“h.txt”)  //F:\apache\example\h.txt

//复制文件
格式:
copy(source,dest)
说明:将source文件复制到dest处
例:copy(“h.txt”,”newfloder\a.txt”)

//判断是否是目录
格式:
is_dir(filename)
说明:判断给定文件名是否是一个目录。如果filename存在并且
为目录,则返回true,否则返回false.
例:

if(is_dir(“newfolder”))
{
echo “是文件目录”;
}

//打开目录
格式:opendir(path)
说明:打开一个指定文件目录,返回一个资源标示符
例:
$hand = opendir(“.”) //打开根目录

//读取目录
格式:
readdir($handle)
说明:读取一个打开的文件目录流
readdir($hand);

//关闭目录
格式:
closedir($handle)
说明:关闭一个打开的目录流
例:closedir($hand);

PHP 相关文章推荐
PHP 登录记住密码实现思路
May 07 PHP
使用php统计字符串中中英文字符的个数
Jun 23 PHP
CodeIgniter使用phpcms模板引擎
Nov 12 PHP
php实现水仙花数示例分享
Apr 03 PHP
CI框架中集成CKEditor编辑器的教程
Jun 09 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 PHP
PHP不使用递归的无限级分类简单实例
Nov 05 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
php 生成加密公钥加密私钥实例详解
Jun 16 PHP
thinkPHP5框架中widget的功能与用法详解
Jun 11 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
Jun 03 PHP
解析php安全性问题中的:Null 字符问题
Jun 21 #PHP
浅析SVN常见问题及解决方法
Jun 21 #PHP
关于svn冲突的解决方法
Jun 21 #PHP
关于PHP模板Smarty的初级使用方法以及心得分享
Jun 21 #PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 #PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
Jun 21 #PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
Jun 21 #PHP
You might like
PHP提取字符串中的图片地址[正则表达式]
2011/11/12 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
JQuery live函数
2010/12/24 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
swiper实现异形轮播效果
2019/11/28 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
python人人网登录应用实例
2014/09/26 Python
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
利用Psyco提升Python运行速度
2014/12/24 Python
python 标准差计算的实现(std)
2019/07/29 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
python操作excel让工作自动化
2019/08/09 Python
python 实现单例模式的5种方法
2020/09/23 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
在职研究生自我鉴定
2013/10/16 职场文书
教师自我鉴定范文
2013/11/10 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
环境卫生倡议书
2014/08/29 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
安全伴我行主题班会
2015/08/13 职场文书
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库