24小时热门版块排行榜    

Znn3bq.jpeg
查看: 134  |  回复: 0
当前主题已经存档。

miRNA

至尊木虫 (职业作家)

水王之王(愚愚学园管理员)

[交流] 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
    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修改为替换变量数据就可以了。

[ Last edited by 幻影无痕 on 2006-11-13 at 08:01 ]
回复此楼

» 猜你喜欢

〖愚愚学园〗http://www.scifans.net免费代理|免费期刊|ezproxy|文献检索|学术资源|免费资源
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 miRNA 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 291求调剂 +7 关忆北. 2026-04-14 7/350 2026-04-16 01:30 by L0alice
[考研] 急需调剂 +5 绝不放弃22 2026-04-15 5/250 2026-04-15 23:11 by Tide man
[考研] 药学求调剂 +11 RussHu 2026-04-12 13/650 2026-04-15 19:07 by zhuwenxu
[考研] 0854调剂 +13 长弓傲 2026-04-12 16/800 2026-04-15 13:45 by fenglj492
[考研] 310求调剂 +16 666真好 2026-04-11 18/900 2026-04-15 13:28 by 黑科技矿业
[考研] 26药学专硕105500求调剂 +6 喽哈加油 2026-04-13 6/300 2026-04-14 16:40 by zhouxiaoyu
[考研] 305求调剂 +8 玛卡巴卡boom 2026-04-11 8/400 2026-04-14 09:04 by pengliang8036
[考研] 一志愿085802 323分求调剂 +13 drizzle_9 2026-04-12 14/700 2026-04-13 10:26 by Faiz5552
[考研] 295分求调剂 +13 ?要上岸? 2026-04-10 13/650 2026-04-12 15:37 by laoshidan
[考研] 求调剂 +16 张番茄不炒蛋 2026-04-10 17/850 2026-04-12 13:58 by 熬夜成!
[考研] 331求调剂 +5 王国帅 2026-04-11 5/250 2026-04-11 22:56 by 溪涧流水
[考研] 0854调剂 +5 音像店听花鼓戏 2026-04-10 5/250 2026-04-11 10:49 by qingpingzhu
[考研] 283求调剂 +22 那个噜子 2026-04-09 22/1100 2026-04-11 10:41 by 逆水乘风
[考研] 085410-273求调剂 +6 X1999 2026-04-10 6/300 2026-04-11 10:32 by Delta2012
[考研] 22408 352分求调剂0854类 +4 努力的夏末 2026-04-09 4/200 2026-04-11 09:57 by zhq0425
[考研] 化学工程与技术324调剂 +23 孙常华 2026-04-09 25/1250 2026-04-11 00:07 by 骑牛渡寒江
[考研] 0858求调剂 5+5 Gky09300550, 2026-04-10 8/400 2026-04-10 19:13 by chemisry
[考研] 一志愿矿大,材料工程专硕314分,0856可调都可以 +15 无懈可击的巨人 2026-04-09 15/750 2026-04-10 18:10 by hmn_wj
[考研] 求调剂 材料与工程 324分 专硕 +19 翩翩一书生 2026-04-10 21/1050 2026-04-10 11:41 by wp06
[考研] 337求调剂 +4 Gky09300550, 2026-04-09 4/200 2026-04-09 17:18 by 帕尔马拉特
信息提示
请填处理意见