【PHP】文件写入和读取详解

<?php
$fp = fopen("C:\wamp64\www\text.txt",'w');
?>

<?php
$fp = fopen("C:/wamp64/www/text.txt",'w');
?>
<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/text.txt",'w');
?>
<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/text.txt",'w');
fwrite($fp,'在写模式下写入');
fclose($fp);
?>

<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/text.txt",'r');
fwrite($fp,'在读模式下写入');
fclose($fp);
?>


很全面,但我觉得这张表对新手有些不太友好,让人看后不知多云。 r是只读,w是只写(原来有的内容全删除),a是追加(不删除原有内容),这都好理解。

<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/text.txt",'r+');
fwrite($fp,'r+ mode');
fclose($fp);
?>

<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/text.txt",'a+');
fwrite($fp,'a+ mode');
fclose($fp);
?>


•采用w+模式写入文本“w+ mode”
<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/text.txt",'w+');
fwrite($fp,'w+ mode');
fclose($fp);
?>


<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/text.txt",'r');//打开文件
if(file_exists("$DOCUMENT_ROOT/text.txt")){//当文件存在时,才读取内容
while(!feof($fp)){//判断文件指针是否到达末尾
$c = fgetc($fp);//每执行一次fgetc(),文件指针就向后移动一位
echo $c;//输出获取到的字节
}
}
fclose($fp);//关闭文件
?>

<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/text.txt",'r');
echo fgetc($fp);//只做一次输出
close($fp);
?>

<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/text.txt",'r');
echo fgetc($fp);//连续做三次输出
echo fgetc($fp);
echo fgetc($fp);
fclose($fp);
?>
<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/text.txt",'r');
echo fread($fp, 3);//一次输出三个字节即一个汉字字符(UTF-8)
fclose($fp);
?>

改成:
echo fread($fp, 6);

<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']
$fp = fopen("$DOCUMENT_ROOT/text.txt",'r');//打开文件
if(file_exists("$DOCUMENT_ROOT/text.txt")){//当文件存在时,才读取内容
while(!feof($fp)){//判断文件指针是否到达末尾
$line = fgets($fp);//返回一行文本,并将文件指针移动到下一行头部
echo $line."<br/>";//输出获取到的一行文本
}
}
fclose($fp);//关闭文件
?>

$line = fgets($fp,10);

<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/text.txt",'r');
fpassthru($fp);
fclose($fp);
?>

<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$file_array = file("$DOCUMENT_ROOT/text.txt");//取到文件数组
foreach ($file_array as $value) {//输出数组元素
echo $value."<br/>";
}
?>

<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
function print_file_pointer($fp){//定义一个打印文件指针位置的函数
echo " <br/>//此时文件指针的位置:";
echo ftell($fp)."<br/>";
}
$fp = fopen("$DOCUMENT_ROOT/text.txt",'r');
echo fgetc($fp);//通过fgetc连续输出三个字节
echo fgetc($fp);
echo fgetc($fp);
print_file_pointer($fp);//打印此刻文件指针的位置 echo fread($fp,6);//通过fread一次输出6字节
print_file_pointer($fp);//打印此刻文件指针的位置 echo fgets($fp); //通过fgets输出一整行
print_file_pointer($fp);//打印此刻文件指针的位置 fpassthru($fp); //一次性输出全部内容
print_file_pointer($fp);//打印此刻文件指针的位置 fseek($fp, 33);//使文件指针移动到33字节位置
print_file_pointer($fp);//打印此刻文件指针的位置 rewind($fp);//使文件指针移动到0字节位置(初始位置)
print_file_pointer($fp);//打印此刻文件指针的位置
$fclose($fp);
?>

<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/text.txt",'r');
while(!feof($fp)){
echo fgets($fp);
echo ftell($fp);
}
fclose($fp);
?>


【PHP】文件写入和读取详解的更多相关文章
- Linux文件权限与属性详解 之 一般权限
目录 一般属性 1. iNode: 3152621 2. 文件类型 3.文件访问权限 4. 链接数目: 5. 文件所有者 6. 文件所属组 7. 文件大小 8. 修改时间 9. 文件名称 Linux文 ...
- Linux文件权限与属性详解 之 chattr & lsattr
Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...
- Python基础-week03 集合 , 文件操作 和 函数详解
一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...
- 【转载】Linux命令-自动挂载文件/etc/fstab功能详解[转]
博客园 首页 新随笔 联系 订阅 管理 随笔 - 322 文章 - 0 评论 - 19 Linux命令-自动挂载文件/etc/fstab功能详解[转] 一./etc/fstab文件的作用 ...
- Linux文件权限与属性详解 之 SUID、SGID & SBIT
Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...
- VMware虚拟机文件(后缀)详解
VMware虚拟机文件(后缀)详解 虚拟机的文件管理由VMware Workstation来执行,一个虚拟机一般以一系列文件的形式储存在宿主机中,这些文件一般在由workstation为虚拟机所创建的 ...
- Linux 执行文件查找命令 which 详解
某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查 ...
- Struts2+Uploadify文件上传使用详解
Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例是php版本的,本文将详细介绍Uploadify在java中的使用,您也可以点击下面的链接进行演示或下 ...
- 轻松学习Linux之Shell文件和目录属性详解
轻松学习Linux之Shell文件和目录属性详解 轻松学习Linux之理解Sitcky 轻松学习Linux之理解umask 轻松学习Linux之理解SUID&SGUID 本系列多媒体教程已完成 ...
随机推荐
- AtCoder Beginner Contest 055题解
A.当a=1就把a改成14,b=1就把b改成14,然后比较a,b大小即可. #include <iostream> #include <algorithm> #include ...
- Java面向对象核心技能
1.封装 封装是面向对象的三大特性之一,就是将类的状态信息隐藏在类内部,不允许外部程序直接访问,而通过该类提供的方法来实现对隐藏信息的操作和访问. 封装的好处:隐藏类的实现细节:让使用者只能通过程序规 ...
- 在Caffe中实现模型融合
模型融合 有的时候我们手头可能有了若干个已经训练好的模型,这些模型可能是同样的结构,也可能是不同的结构,训练模型的数据可能是同一批,也可能不同.无论是出于要通过ensemble提升性能的目的,还是要设 ...
- 跟着刚哥梳理java知识点——IO(十五)
凡是与输入.输出相关的类.接口都定义在java.io包下 java.io.File类 1.File是一个类,可以有构造器创建其对象.此对象对应着一个文件或者一个目录. 2.File中的类,仅涉及到如何 ...
- SqlDataReader生成动态Lambda表达式
上一扁使用动态lambda表达式来将DataTable转换成实体,比直接用反射快了不少.主要是首行转换的时候动态生成了委托. 后面的转换都是直接调用委托,省去了多次用反射带来的性能损失. 今天在对Sq ...
- 腾讯AlloyTeam正式发布Canvas魔幻线条 - curvejs
[原文链接] ## 写在前面 curvejs 中文读["克js"],是腾讯AlloyTeam打造的一款魔幻线条框架,让线条成为一名优秀的舞者,让线条们成为优秀的舞团,HTML5 ...
- 【STL】reverse函数用法
reverse函数的功能是反转排序一个容器中指定元素的内容. 函数参数:reverse(first,last), 其中first,last分别指向被反转序列中初始及末尾位置的双向迭代器(Bidirec ...
- android奋战的一周
移动开发项目终于开始了,我也开始紧张起来了,就靠着培训时候学的一知半解的知识,作为一个主力不得不逼着自己不停的做实验,不停的学习. 有辛苦就有回报,我也对android开发中整体的框架有了些许的了解. ...
- 新型钓鱼手段预警:你看到的 аррӏе.com 真是苹果官网?
研究人员发现一种"几乎无法检测"的新型钓鱼攻击,就连最细心的网民也难以辨别.黑客可通过利用已知漏洞在 Chrome.Firefox 与 Opera 浏览器中伪造显示合法网站域名(例 ...
- get和post提交数据的区别
get是客户端向服务器索取数据的请求,设定的初衷是,客户端(浏览器)给服务器发送请求,然后服务器再返回给客户端其要求的数据. 那么为什么说get也能提交数据呢? 我们仔细理解第一句话“客户端(浏览器) ...