正 文

PHP开发中文件操作疑难问答


www.7dspace.com  更新日期:2005-8-16 3:24:20  七度空间


问:我如何才能获得文件的相关属性?

  答: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修改为替换变量数据就可以了。
2页,当前在第2页  1  2  

上一篇:让ASP的网页提速技巧五则
下一篇:安全配置你的PHP
作者:杨宗威  来源:天极网 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐