PHP 操作文件的一些FAQ总结


Posted in PHP onFebruary 12, 2009

问:如何新建一个文件?
答: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.datw
文件中数据不止三行)

<?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 相关文章推荐
Discuz Uchome ajaxpost小技巧
Jan 04 PHP
JS 网站性能优化笔记
May 24 PHP
深入解析Session是否必须依赖Cookie
Aug 02 PHP
PHP自动重命名文件实现方法
Nov 04 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
Jan 28 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
Zend Framework教程之Zend_Db_Table用法详解
Mar 21 PHP
PHP中Cookie的使用详解(简单易懂)
Apr 28 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
PHP实现git部署的方法教程
Dec 19 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
Feb 10 #PHP
PHP6 mysql连接方式说明
Feb 09 #PHP
PHP 数据库树的遍历方法
Feb 06 #PHP
一周让你学会PHP 不错的学习资料
Feb 06 #PHP
简化php模板页面中分页代码的解析
Feb 06 #PHP
精通php的十大要点(上)
Feb 04 #PHP
用mysql内存表来代替php session的类
Feb 01 #PHP
You might like
Terran剧情介绍
2020/03/14 星际争霸
php 常用算法和时间复杂度
2013/07/01 PHP
php网站地图生成类示例
2014/01/13 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
2019/10/12 PHP
setTimeout和setInterval的浏览器兼容性分析
2007/02/27 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
Vue.js 图标选择组件实践详解
2018/12/03 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
Python中的元类编程入门指引
2015/04/15 Python
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
python启动应用程序和终止应用程序的方法
2019/06/28 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
Django发送邮件功能实例详解
2019/09/02 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
爱岗敬业演讲稿范文
2014/01/14 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
简易版租房协议书范本
2014/10/13 职场文书
项目战略合作意向书
2015/05/08 职场文书
信用卡工资证明范本
2015/06/19 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
Python实现机器学习算法的分类
2021/06/03 Python
Nginx 安装SSL证书完成HTTPS部署
2022/04/28 Servers
Redis基本数据类型List常用操作命令
2022/06/01 Redis