巅云智能建站平台搭建版(创业流派版)火爆上线,毕生受权!新增:文章智能收罗+全站真静态打包+城市分站+智能小法式+不法词过滤+H5自顺应+智能链词等功效功效概况
赞助文档Help

PHP中feof()函数实例测试

一佰互联网站建造(www.taishanly.com) 宣布日期 2020-04-28 13:46:31 阅读数: 103

本文实例报告了PHP中的feof()函数的用法,针对feof()函数停止了必然的测试,很有适用代价。详细阐发以下:

本文实例运转环境:

OS:Mac OS X 10.8.4
PHP:5.3.15

在PHP的官方手册中,函数feof()下面的会商不少,对此做了一些相干的测试以下。

测试代码以下:

<?php
print <<<EOF
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>测试PHP中的feof()函数成果</title>
  </head>
  <body>
    <div>
EOF;
function bool2str($bool) {
  if ($bool == TRUE) {
    return "TRUE";
  } else {
    return "FALSE";
  }
}
/*
 * 请随意建立一个文件。
 * 比方:本测试中,在剧本文件的不异途径下建立了一个文本文件,
 * 文件内容为“abcdefg”,文件名为“7bytesfile”。
 */
$filename = "./7bytesfile";
$handle = fopen($filename, "r");
if (!$handle) {
  die("文件翻开失利");
}
for($i = 0; $i <= filesize($filename); $i++) {
  fseek($handle, $i);
  echo "文件地位" . ftell($handle) . ":<br />
";
  echo "履行fseek,还不履行读取操纵之前,feof成果:" . bool2str(feof($handle)) . "<br />
";
  echo "以后地位字符:" . fgetc($handle) . "<br />
";
  echo "履行文件读取操纵以后,feof成果:" . bool2str(feof($handle)) . "<hr />
";
}
/*
 * 经由过程下面一段代码能够察看到,
 * 跟着轮回的履行,文件指针从文件头一向挪动到文件开端。
 * 可是当完成了字符“g”的读取输入,文件指针持续向后挪动,这是feof()仍然前往False。
 * 只要当履行了一次fgetc()操纵以后,才前往true,表现达到文件开端。
 */
echo "ftell()成果:". ftell($handle). "<hr />
";
//输入一下,很愁闷的发明文件指针的地位仍是7。+_+

fseek($handle, 4);
echo "文件地位" . ftell($handle) . ":<br />
";
echo "履行fseek,还不履行读取操纵之前,feof成果:" . bool2str(feof($handle)) . "<br />
";
echo "以后地位字符:" . fgetc($handle) . "<br />
";
echo "履行文件读取操纵以后,feof成果:" . bool2str(feof($handle)) . "<hr />
";

fseek($handle, 7);
echo "文件地位" . ftell($handle) . ":<br />
";
echo "履行fseek,还不履行读取操纵之前,feof成果:" . bool2str(feof($handle)) . "<br />
";
echo "以后地位字符:" . fgetc($handle) . "<br />
";
echo "履行文件读取操纵以后,feof成果:" . bool2str(feof($handle)) . "<hr />
";
fclose($handle);
//再次挪动文件指针,成果照旧。
//再用别的一段代码测试一下:

$handle = fopen($filename, "r");
if (!$handle) {
  die("文件翻开失利");
}
while (!feof($handle)) {
  $char = fgetc($handle);
  if ($char === FALSE) {
    echo "FALSE";
  } else {
    echo $char;
  }
}
fclose($handle);
//仍然是输入了字符g以后,再次履行读取操纵,才停止轮回。

print <<<EOF
    </div>
  </body>
</html>
EOF;
?>

针对这类环境的预测是,在PHP中,feof()的完成体例并非间接查抄文件指针绝对文件的地位,而是按照某个标识前往成果。每次fseek()以后城市城市把这个标识设置为“False”,只要当履行一次文件内容读取操纵以后,才会按照文件读取的成果对标识停止设置。

按照这类预测,能够操纵两种代码逻辑。

一个体例是不做feof()检测,间接检测内容读取函数(比方fgetc()、fgets())的履行成果。

示例代码以下:

while (($content = fgets($fileHandle)) !==FALSE) {
   //文件内容处置…… 
}

这类处置体例,操纵了PHP被诟病的函数前往体例,以是得用“===”或“!==”停止检测,不能把代码简化成:

while ($content = fgets($fileHandle)) {}

别的一个体例是先停止一次文件读取,而后再进入feof()轮回,以下所示:

$content = fgets($fileHandle);
while (!feof($fileHandle)) {
  //处置文件内容……
  $content = fgets($fileHandle); 
}

颠末测试,前一种体例效力会高一些。

但愿本文示例对大师PHP法式设想有所赞助。

一佰互联是天下着名建站品牌办事商,咱们有九年、网站建造、网页设想、php开辟和域名注册及假造主机办事经历,供给的办事更是天下着名。最近几年来还整合团队上风自立开辟了可视化多用户”“3.0平台版,拖拽排版网站建造设想,轻松完成pc站、手机微网站、小法式、APP一体化全网营销网站扶植 ,已胜利的为天下上百家收集公司供给自助建站平台搭建办事。

相干动静more

28
03月
谈天宝回应被微信封杀:特地做了一个下载网页

简介:站长之家(ChinaZ.com) 1月15日 动静:继快播开创人王欣的交际软件马桶MT被微信屏障之,罗永浩站台的谈天宝也难逃被屏障的命... >>概况

06
12月
若何请求收费域名?收费的域名有吗

若何请求收费域名?收费的域名有吗?有,收费的顶级域名只要少许,普通都是二级域名, 这类域名是不任何推行代价的,吃力不奉迎吧为别人做告白罢了... >>概况

04
05月
阐发百度K站缘由及处理体例

网站被K或收录慢,长时候不更新,有几种环境: 一、网站标题/描写惹的祸: 常常频仍地点窜标题或网站描写致使。 处理体例:别有事没事就拿标题... >>概况

28
04月
腾讯微博提醒missing paramete

本文实例报告了腾讯微博提醒missing parameter errorcode 102 毛病的处理体例。分享给大师供大师参考。详细阐发以下... >>概况

高端网站扶植

美工统筹SEO,为企业电子商务营销助力!

德律风:

023-85725751
建站

产物

域名注册 假造主机 云办事器 企业邮局
智能建站 APP打包 微站/小法式 创业平台
网站推行 媒体营销 智能收罗 AI机械人
400德律风 短信营销 店销机械人
私家定制 流派网站