上一篇:用PHP实现通过Web执行C/C++程序 >>
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
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修改为替换变量数据就可以了。
()
下一篇:MD5算法在JS中的实现 >>
相关文章:
- · 封IP的ASP代码的实现
- · php显示网址物理地地址
- · 纵向滚动无缝链接/横向滚动无缝链接
- · 断开的数据库连接的一个例子
- · SQL Server端口更改后的数据库连接方式
- · 在数据库中使用对象的好处
- · 存储过程介绍及asp存储过程的使用
- · asp中实现类似.NET的session
- · ASP生成JS调用的代码
- · Access也支持存储过程
- · ASP+简单的存储过程实现的ASP插入功能
- · MySQL自定义函数的Windows版本实现
- · 符合WEB标准的下拉导航菜单例子之一
- · 用ASP连接各种数据库的方法
- · 让电脑开口朗读汉语的java 代码
- · 惊云下载系统偷天空避免产生链接来自天空软件站的信息程序
- · 关于ASP无组件上传在2003下出错
- · 用 INNER JOIN语法联接多个表建记录集
- · ASP.NET IIS 注册工具 (Aspnet_regiis.exe)
- · 将SQL SERVER中所有表的列信息显示出来
- · 常用的匹配正则表达式和实例
- · 在线运行以及框架的代码
- · oracle中对db的不同命名方式
- · ASP小偷(远程数据获取)程序的入门教程
- · 在UNIX系统下安装MySQL
- · javascript 中的replace方法
- · 恢复SQL Server系统数据库
- · SQL语法大全
- · 永不关闭广告窗口代码
- · 基于鼠标点击跟踪的用户点击行为分析
- · 用PHP查询域名状态whois的类
- · 用PHP输出静态页面的两种方法
- · Discuz4.0.0RC3头像跨站漏洞
- · MSSQL OpenDataSource函数漏洞的攻击程序源码
- · 用户口令保护新招
- · php5学习笔记
- · 跟我学正则表达式
- · 检查Email地址的比较完善的正则表达式函数
