仓酷云

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

[学习教程] PHP网页设计PHP文件读写操作之文件读取办法详解

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:40:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
虽说不上很好,但至少一般的数据操作,再在原有的SQL语言的基础上,用得还是可以的。   PHP文件读取操作相对文件写入操作触及更多的PHP文件操作函数,在代码实例中会具体引见这些函数。
  读取文本文件中存储数据的体例次要触及的三个步调及局部文件操作函数以下:
  1、翻开文件(文件操作函数:fopen)
  2、文件数据读取(文件操作函数:fgets、file、readfile、feof等)
  3、封闭文件(文件操作函数:fclose)

  上面依然以PHP文件读写操作代码实例解说文件读取办法的详细使用,在实例中,经由过程挪用分歧的PHP文件读取操作函数读取文本文件中的数据,你可以加深PHP文件读取操作函数的了解,以便在PHP网站开辟中公道使用。文本文件中写入的数据来自于PHP文件读写操作之文件写入教程,fopen函数中关于文件读写形式也可参考此文。
  PHP文件读取操作代码实例
复制代码 代码以下:
<?
$readFun = "fread";
switch ($readFun)
{
case "fgetss":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
$allowable_tags = "<h1>";
while (!feof($fp)) {
$output = fgetss($fp,100,$allowable_tags);
echo $output;
}
fclose($fp);
break;
case "fgetcsv":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$output = fgetcsv($fp,100,"\t");
print_r($output);
}
fclose($fp);
break;
case "readfile":
echo readfile("leapsoulcn.txt");
break;
case "fpassthru":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
if(!fpassthru($fp))
exit();
fclose($fp);
break;
case "file":
$output = file("leapsoulcn.txt");
print_r($output);
break;
case "fgetc":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$str = fgetc($fp);
echo ($str == "\n"?"<br/>":$str);
}
fclose($fp);
break;
case "fread":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
echo fread($fp,300);
fclose($fp);
break;
default:
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$output = fgets($fp,100);
echo $output;
}
fclose($fp);
break;
}
?>

正文:在上述实例中你可以经由过程对$readFun赋值来完成分歧的PHP文件读取办法的挪用,触及的PHP文件读取操作函数有fgets、fgetss、fgetcsv、readfile、fpassthru、file、fgetc等函数。
PHP文件读取操作函数fgets、fgetss、fgetcsv之间的区分
  在代码实例中,默许PHP文件读取操作函数为fgets,fgetss与fgetcsv函数的功效与fgets一样,都是一次读取文件中的一行,直到文件末尾。此处我设定读取文本文件中的数据长度为100,即最大读取长度为99(100-1),如许,当碰到换行符\n或文件停止符EOF或从文件中读取完99个字节时就中断读取数据。fgets函数前往文件读取的数据,字符串型。
  fgetss函数是fgets函数的一个变体,它可以剥离PHP和HTML标志,经由过程传递第三参数来过滤不用要的数据,可以进步网站平安性,好比留言本中可以过滤用户的输出数据,fgetss函数原型以下:
复制代码 代码以下:
string fgetss(resource fp,int length, string[optional] allowable_tags)

allowable_tags参数是可选项,实例中我事前在leapsoulcn.txt文件中写入了包括html、body、h1标志的一行文字,然后在代码中我设定只答应h1标志可以呈现。
  fgetcsv函数是fgets的另外一个变体,区分在与,当你的文本文件中写入的数据利用了定界符,可使用fgetcsv将一行分化成多行,前往的了局存储在数组中,函数原型以下
复制代码 代码以下:
array fgetcsv(resource fp,int length, string[optional] delimiter,string[optional] enclosure)

delimiter是可选项,因为在之前写入文件的数据中我是用了\t,所以在实例中文件读取函数fgetcsv中的定界符我利用了\t,然后经由过程print_r打印出fgetcsv前往的数组布局。
  三个PHP文件读取操作函数fgets、fgetss、fgetcsv配合的地方在于事前都需求利用fopen函数翻开读取的文件,同时经由过程feof函数判别是不是文件指针抵达文件末尾,切记在读取操作完成后利用fclose函数封闭文件。
  fgetc:读取单个字符
  fgetc函数用来读取一个字符,在代码实例中我经由过程一个一个读取字符,当碰到\n字符时将其转换成html文件中的br标志,以便在旅游器中显示详细的换行后果,固然此函数的效力一定是对照低的,不建议利用。
  PHP文件读取操作函数readfile、fpassthru、file之间的区分
  三个函数配合的地方是一次可以读取全部文件,而不是一次读一行或一个字符。区分在于:
  readfile函数翻开文件,前往文件内容直接输入在旅游器上,与fopen函数一样,函数前往值为文件的字符总数,readfile函数的第二个参数是可选项,指明PHP是不是应在include_path中查找文件。在代码实例中,我利用echo语句不是用来输入读取的文件内容,而是输入读取的文件字符总数,读取的文件内容readfile函数已主动输入,这一点必需明白!readfile函数原型以下:
复制代码 代码以下:
int readfile(string filename,int[optional] use_include_path)

  file函数是另外一种读取文件的办法,它是把读取的文件内容送到一个数组中,每行一个数组单位。file函数原型以下:
复制代码 代码以下: array file(string filename,bool[optional] use_include_path)
  fpassthru()函数用来输入文件指针处的一切残剩数据,即假如文件指针其实不在开首,它只输入文件指针前面的数据。该函数将给定的文件指针从以后的地位读取到EOF,并把了局写到输入缓冲区,前往值为输入的字符数。产生毛病时,前往FALSE。与readfile()函数比拟,fpassthru()函数需求起首翻开文件,数据读取终了后要封闭文件。
  fread与file_exists、filesize函数
  fread函数也是读取文件的一种办法,其可以从文件中读取恣意字节,要末知足length要末读到文件末尾。read函数原型以下:
复制代码 代码以下: string fread(resource fp,int length)
  在用到fread函数时,当你想读取文件全体数据,又不晓得文件数据长度时,filesize函数可以处理这个成绩,即
复制代码 代码以下:
<?
  @$fp = fopen("leapsoulcn.txt","r") or die("system error");
  echo fread($fp,filesize("leapsoulcn.txt"));
  fclose($fp);
?>

在PHP文件读写操作教程中咱们还没有利用过file_exists函数,凡是在PHP网站开辟中,出于各类思索,有时当文件不存在时,咱们其实不像创立新文件,这时候咱们就需求在利用fopen函数前利用file_exists函数判别文件是不是存在,即
复制代码 代码以下:
<?
if(file_exists("leapsoulcn.txt"))
{
  //停止PHP文件读写操作
}
?>

以上就是PHP文件读写操作教程之文件读取操作的各类办法引见,经由过程公道使用PHP文件读写操作函数,可以完成复杂的留言本、网站log纪录等功效。从刚开始练习的PHP基础语法练习,到PHP语言在WEB中的应用,再到实际的项目开发,如留言版,相册系统,中小型公司网站系统,以及期间做过的有关团队合作的小游戏,让我受益匪浅,学到了很多。
爱飞 该用户已被删除
沙发
发表于 2015-2-4 05:58:49 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
只想知道 该用户已被删除
板凳
发表于 2015-2-9 16:33:48 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
再见西城 该用户已被删除
地板
发表于 2015-2-27 10:41:12 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-28 03:45:26 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
变相怪杰 该用户已被删除
6#
发表于 2015-3-9 20:37:20 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
若天明 该用户已被删除
7#
发表于 2015-3-16 06:45:00 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-20 01:31:04 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
若相依 该用户已被删除
9#
发表于 2015-3-24 21:36:47 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
再现理想 该用户已被删除
10#
发表于 2015-4-6 02:08:38 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
透明 该用户已被删除
11#
发表于 2015-4-6 12:17:16 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
分手快乐 该用户已被删除
12#
发表于 2015-4-15 03:36:45 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
活着的死人 该用户已被删除
13#
发表于 2015-4-16 09:16:57 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
柔情似水 该用户已被删除
14#
发表于 2015-4-18 18:41:54 | 只看该作者
当然这种网站的会员费就几十块钱。
小女巫 该用户已被删除
15#
发表于 2015-4-26 17:00:34 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
莫相离 该用户已被删除
16#
发表于 2015-5-1 20:09:23 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
简单生活 该用户已被删除
17#
发表于 2015-6-13 01:17:00 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
18#
发表于 2015-7-8 10:55:21 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
蒙在股里 该用户已被删除
19#
发表于 2015-7-9 06:02:53 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 02:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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