PHP操作文件方法问答


Posted in PHP onMarch 16, 2007

PHP操作文件问答 
前言: 
PHP中对各类数据库的操作有着支持,对文件的操作也同样有着很丰富的操作方法,很多朋友现在的操作还是基于文件操作可是有的时候在操作文件的时候还存在不少的困惑和疑点,以下是我在日常编写过程中碰到的以及坛上朋友所碰到的关于文件操作的一些问题收藏吧。 
问:如何新建一个文件? 
答:
1、使用fopen("要建立的文件名","参数"),参数可选w,w+,a,a+ 
2、使用exec("echo '' > 要建立的文件名");这样是使用系统方式建立这个文件,你还可以使用touch这个linux命令来建立 
问:为什么我无法建立文件? 
答:
1、如果你使用了fopen建立文件,是否正确的使用了参数 
2、系统权限问题,请询问你的WEBMASTER你的FTP目录是否有写的权限 
3、FTP权限问题,你要确认你的PHP文件所要写文件所在目录要有写的权限,也就是你的FTP软件登陆后other组要有写这个权限, 
如果没有请修改权限后尝试 
问:如何将文件读入数组? 
答:使用file函数 
问:如何将文件全部读出? 
答:
1、使用fread($fp); 
2、如果你的PHP版本>=4.3.0的话可以使用file_get_contents(); 
问:如何判断文件是否存在? 
答:使用file_exists();
再问:为什么不使用fopen()来判断呢?
答:原因是有时候是因为权限问题导致fopen返回的数据引导我们错误的判断 
问:为什么当我读取一个WEB页面的时候出错? 
答:
1、可能是你的传递参数错,当读取WEB页面的时候你只可以使用r方式读取页面 
2、确保你要读取的WEB页面可以访问 
问:我如何才能获得文件的相关属性? 
答:PHP提供了一组获得文件属性的方法,例如 filemtime(),fileowner(),filegroup(),filectime(),fileatime()...详细的使用请参阅手册。 
问:PHP打开文件后是否可以象C一样进行文件“游标”的定位呢? 
答:可以的,使用fseek(); 
问:我想在访问文件的时候不允许其他人也访问此文件,怎么办? 
答:
1、你可以采用其他方面程序限制用户接入文件操作的页面 
2、使用flock();详细的参数以及使用方法请参阅手册 
问:如何删除文件内第一行,或指定一行数据? 
答:
PHP并没有提供这样的操作方法,不过我们可以通过组合使用,以下代码演示我们将删除文件"test.dat"中的第三行数据(test.dat 文件中数据不止三行) 
<?php 
$filename="test.dat";//定义操作文件 
$delline=3; //要删除的行数 
if(!file_exsits($filename)){ 
die("指定文件未发现!操作中断!"); 

$farray=file($filename);//读取文件数据到数组中 
for($tmpa=0;$Tmpa<count($farray);$Tmpa++){ 
if(strcmp($Tmpa+1,$delline)==0){ 
//判断删除的行 
continue; 

//重新整理后的数据 
$newfp.=$farray[$Tmpa]."\r\n"; 

$fp=@fopen($filename,"a") or die("写方式打开文件 $filename 失败");//我们以写的方式打开文件 
@fputs($fp,$newfp) or die("文件写入失败"); 
@fclose($fp); 
?> 
以上代码演示的是删除一行文件,不过你如果仔细的看的话,其实也给你提供了其他的文件操作的相关提醒~ 
问:当我试图打开一个不存在的文件的时候,我如何不让错误显示出来以避免我的路径泄露!! 
答:在你要打开文件的方法前增加@符号用来屏蔽错误,@是PHP提供的错误信息屏蔽的专用符号 
或您可以在这个要操作的步骤前增加(通常是在页首)error_reporting(0);用来屏蔽页面内所有错误信息的显示 
一个不推荐的方法就是去修改php.ini(ISP除外) 
问:我使用的是虚拟主机,我如何防止其他用户窃取我的数据? 
答:建议ISP修改php.ini中的open_basedir进行限制, 
不推荐的ISP设置是将fopen,file等文件操作加入disable_function中。 
问:为什么我用PHP建立文件后我FTP登陆要删除这些文件无法删除?? 
答:主要是因为PHP建立的文件归属WEB用户组,也就是建立的文件,并非是你FTP用户的!!! 
这个问题的解决就是,使用PHP程序的chmod,unlink等方式进行处理,建议用户在使用PHP建立文件的时候记得chmod文件权限,建议为777 
问:如何使用文本文件作为数据仓库?有的留言本,论坛之类的都是使用这个的啊! 
答:其实这个主要还是使用了file,结合explode进行数据读取与分割的典型范例而已。 
问:如何更改文件名? 
答:rename(); 
问:如何删除文件? 
答:unlink(); exec("del(rm -vf) filename");
注:rm -vf为linux下使用 
问:如何清空文件? 
答:使用fopen(filename,"w");或exec("echo '' > filename"); 
问:如何编辑文件内容? 
答:我记得我以前回答过一个删除文件内容的,其实编辑内容在删除内容的基础上,进行变量替换就可以了。 
希望你可以向上找找,将我上面的continue修改为替换变量数据就可以了:) 

PHP 相关文章推荐
PHP 使用header函数设置HTTP头的示例解析 表头
Jun 17 PHP
web server使用php生成web页面的三种方法总结
Oct 28 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
ThinkPHP模板判断输出Empty标签用法详解
Jun 30 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
Oct 31 PHP
php导出中文内容excel文件类实例
Jul 06 PHP
php链表用法实例分析
Jul 09 PHP
php+MySQL实现登录时验证登录名和密码是否正确
May 10 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
PHP二进制与字符串之间的相互转换教程
Oct 14 PHP
vmware linux系统安装最新的php7图解
Apr 14 PHP
Yii框架响应组件用法实例分析
Sep 04 PHP
用PHP控制用户的浏览器--ob*函数的使用说明
Mar 16 #PHP
PHP中for循环语句的几种变型
Mar 16 #PHP
使用TinyButStrong模板引擎来做WEB开发
Mar 16 #PHP
使用 eAccelerator加速PHP代码的目的
Mar 16 #PHP
PHP的开发框架的现状和展望
Mar 16 #PHP
用header 发送cookie的php代码
Mar 16 #PHP
PHP实现多服务器session共享之NFS共享的方法
Mar 16 #PHP
You might like
php面向对象全攻略 (十五) 多态的应用
2009/09/30 PHP
php中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
浅谈PHP中的
2016/04/23 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
php for 循环使用的简单实例
2016/06/02 PHP
如何离线执行php任务
2017/02/21 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
2019/09/16 PHP
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
jquery实现点击弹出对话框
2020/02/08 jQuery
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
[03:11]DOTA2上海特锦赛小组赛第一日recap精彩回顾
2016/02/28 DOTA
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
mac系统安装Python3初体验
2018/01/02 Python
python 遍历pd.Series的index和value
2019/11/26 Python
Python 面向对象部分知识点小结
2020/03/09 Python
使用layui实现左侧菜单栏及动态操作tab项的方法
2020/11/10 HTML / CSS
手机配件第一品牌:ZAGG
2017/05/28 全球购物
机械制造专业毕业生求职信
2014/03/02 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
武侯祠导游词
2015/02/04 职场文书
幼师小班个人总结
2015/02/12 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
vue实现移动端div拖动效果
2022/03/03 Vue.js