仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1973|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之PHP静态网站制造中关于文件操作的疑问问...

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:01:50 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话:   <P>媒介:   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<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修正为交换变量数据就能够了。
在学习HTML中我想边学边做是最有效的方式,当然这一方式对于学习PHP同样是最有效的。
小魔女 该用户已被删除
沙发
 楼主| 发表于 2015-7-12 06:40:11 | 显示全部楼层
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 02:57

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表