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 相关文章推荐
php+dbfile开发小型留言本
Oct 09 PHP
使用php来实现网络服务
Sep 15 PHP
PHP 文件缓存的性能测试
Apr 25 PHP
PHP基础学习小结
Apr 17 PHP
PHP学习之字符串比较和查找
Apr 17 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
May 31 PHP
PHP实现对文本数据库的常用操作方法实例演示
Jul 04 PHP
WAMP环境中扩展oracle函数库(oci)
Jun 26 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 PHP
如何在centos8自定义目录安装php7.3
Nov 28 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
php四种基础算法代码实例
2013/10/29 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
struts2 jquery 打造无限层次的树
2009/10/23 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
canvas知识总结
2017/01/25 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
JavaScript实现拖拽功能
2020/02/11 Javascript
JS监听组合按键思路及实现过程
2020/04/17 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
Python中如何添加自定义模块
2020/06/09 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
python3实现简单飞机大战
2020/11/29 Python
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
印度尼西亚最大的电商平台:Tokopedia(印尼版淘宝)
2017/12/02 全球购物
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
2015/08/17 面试题
文秘档案管理岗位职责
2014/03/06 职场文书
优质服务演讲稿
2014/05/14 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
2014年招生工作总结
2014/11/26 职场文书
2014年加油站站长工作总结
2014/12/23 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers
灵能百分百第三季什么时候来?
2022/03/15 日漫