php文本文件操作和php文本文件操作像数据库一样操

一、在PHP中,你可以使用一些内置的函数来进行文本文件操作。下面是一些常见的文本文件操作示

例:

  1. 打开文件:
$filename = "example.txt";
$file = fopen($filename, "r"); // 打开文件以供读取
$file = fopen($filename, "w"); // 打开文件以供写入
  1. 读取文件内容:
$filename = "example.txt";
$file = fopen($filename, "r");
if ($file) {while (($line = fgets($file)) !== false) {echo $line;}fclose($file);
}
  1. 写入文件内容:
$filename = "example.txt";
$file = fopen($filename, "w");
if ($file) {$text = "Hello, World!";fwrite($file, $text);fclose($file);
}
  1. 追加内容到文件末尾:
$filename = "example.txt";
$file = fopen($filename, "a");
if ($file) {$text = "This is a new line.";fwrite($file, $text);fclose($file);
}
  1. 检查文件是否存在:
$filename = "example.txt";
if (file_exists($filename)) {echo "文件存在";
} else {echo "文件不存在";
}

请注意,这些只是一些基本的示例,你还可以使用其他函数来处理文件的读取、写入、删除等操作。另外,在进行文件操作时,确保你对文件具有适当的权限,并妥善处理可能出现的错误。

二、php文本文件操作像数据库一样操作代码

/*** 查询指定关键字的行* @param string $filename 文件名* @param string $searchKeyword 查询关键字* @return string 匹配行的内容*/
function searchLines($filename, $searchKeyword) {$result = '';$file = fopen($filename, "r");if ($file) {while (($line = fgets($file)) !== false) {if (strpos($line, $searchKeyword) !== false) {$result .= $line;}}fclose($file);}return $result;
}/*** 添加新行* @param string $filename 文件名* @param string $newLine 新行内容* @return string 操作结果消息*/
function addLine($filename, $newLine) {$file = fopen($filename, "a");if ($file) {fwrite($file, $newLine . PHP_EOL);fclose($file);return "行已添加";}return "添加行失败";
}/*** 修改指定行的内容* @param string $filename 文件名* @param int $lineNumber 需要修改的行号(从1开始)* @param string $newLineContent 新行内容* @return string 操作结果消息*/
function updateLine($filename, $lineNumber, $newLineContent) {$file = file($filename);if (isset($file[$lineNumber - 1])) {$file[$lineNumber - 1] = $newLineContent . PHP_EOL;file_put_contents($filename, implode("", $file));return "行已修改";}return "行不存在";
}/*** 删除指定行* @param string $filename 文件名* @param int $lineNumber 需要删除的行号(从1开始)* @return string 操作结果消息*/
function deleteLine($filename, $lineNumber) {$file = file($filename);if (isset($file[$lineNumber - 1])) {unset($file[$lineNumber - 1]);file_put_contents($filename, implode("", $file));return "行已删除";}return "行不存在";
}

现在这些函数会返回相应的结果字符串,你可以将其赋值给变量或直接在需要的地方使用。调用函数后,你可以根据返回的结果决定如何处理显示或响应。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【模式识别】解锁降维奥秘:深度剖析PCA人脸识别技术

​🌈个人主页:Sarapines Programmer🔥 系列专栏:《模式之谜 | 数据奇迹解码》⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。 目录 🌌1 初识模式识…

12.20力扣

2828. 判别首字母缩略词 题目介绍:   给你一个字符串数组 words 和一个字符串 s ,请你判断 s 是不是 words 的 首字母缩略词 。   如果可以按顺序串联 words 中每个字符串的第一个字符形成字符串 s ,则认为 s 是 words 的首字母缩略词。…

智能化物联网(IoT):发展、问题与未来前景

导言 智能化物联网(IoT)作为信息技术领域的一项核心技术,正在深刻改变人们的生活和工作方式。本文将深入研究IoT的发展过程、遇到的问题及解决过程、未来的可用范围,以及在各国的应用和未来的研究趋势。探讨在哪些方面能够取得胜利…

k8s-ingress特性 9

TLS加密 创建证书 测试访问 auth认证 创建认证文件 rewrite重定向 进入域名时,会自动重定向到hostname.html 示例: 测试 版本的升级迭代,之前利用控制器进行滚动更新,在升级过程中无法做到快速回滚 更加平滑的升级&#xff1…

【数据结构】线段树算法总结(区间修改)

知识概览 线段树一般有5个操作: pushup:用子节点更新当前节点信息pushdown:把懒标记往下传build:初始化一棵树modify:修改一个区间query:查询一个区间 不带懒标记(支持单点修改)的线…

【PostgreSQL】从零开始:(二十)数据类型-日期/时间类型

日期/时间类型是一种数据类型,用于表示日期和时间的值。在PostgreSQL数据库中,日期/时间类型通常包括以下几种形式: 名字存储大小描述最低值最高值最小单位timestamp [(p)][without time zone]8字节日期和时间(无时区公元前4713年294276 AD1…

Mysql-干净卸载教程

卸载 服务停掉 先把mysql服务停掉,如下点击右键,停止运行。 删除C盘内文件 接下来c盘里面的三个文件下的MySQL一一删除,需要注意的是 需要注意的是programdata文件下可能 隐藏了MySQL文件,所以可以在查看选项显示隐藏的文件。 …

PolarDB-X、OceanBase、CockroachDB、TiDB二级索引写入性能测评

为什么要做这个测试 二级索引是关系型数据库相较于NoSQL数据库的一个关键差异。二级索引必须是强一致的,因此索引的写入需要与主键的写入放在一个事务当中,事务的性能是二级索引性能的基础。 目前市面上的分布式数据库中,从使用体验的角度看…

前后端分离下的鸿鹄电子招投标系统:使用Spring Boot、Mybatis、Redis和Layui实现源码与立项流程

在数字化时代,采购管理也正经历着前所未有的变革。全过程数字化采购管理成为了企业追求高效、透明和规范的关键。该系统通过Spring Cloud、Spring Boot2、Mybatis等先进技术,打造了从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通过…

argmin与argmax

argmin 是一个数学术语,用于表示一个函数在其定义域中取得最小值的参数值(自变量的值),而不是最小值本身。 具体来说,argmin 表示函数的自变量(通常是一个实数或向量),当输入到该函数…

VueRouter路由

目录 一、路由的基本使用 二、多级路由 三、路由的query参数 四、命令路由 五、路由的params参数 六、路由的props配置 七、router-link的replace的属性 八、编程式路由导航 九、缓存路由组件 十、全局路由守卫 十二、组件内部路由守卫 十三、history模式和hash模式…

JavaWeb笔记之前端开发JavaScript

一、引言 1.1 简介 JavaScript一种解释性脚本语言,是一种动态类型、弱类型、基于原型继承的语言,内置支持类型。 它的解释器被称为JavaScript引擎,作为浏览器的一部分,广泛用于客户端的脚本语言,用来给HTML网页增加…

Linux:APP运行与用户态以及内核态、APP收到的信号处理

目录 定义:何为用户态,何为内核态?问题一:app何时进入内核态,何时退出?问题二:app进入/退出内核态时会进行那些操作呢?问题三:app在用户态/内核态处理信号,信…

统计个数并调用--函数设计与实现

#定义函数 count(s) ,统计字符串中小写字母、大写字母、数字的个数,并以字典为结果返回给调用函数。 # (1)判断字符类型 def count(s):#创建字典,用于保存变量dictionary {数字: 0, 小写字母: 0, 大写字母: 0, 其他字符: 0}for c in s:if c.isdigit():d…

AdaBoost提升方法

提升方法的基本思想是通过改变训练样本的权重学习多个分类器,并将这些线性分类器进行线性组合,提高分类性能。 AdaBoost 提高前一轮被分类错误样本的权值,降低前一轮被分类正确的权值;加大分类误差率小的弱分类器。 算法 输入&…

React学习计划-React16--React基础(三)收集表单数据、高阶函数柯里化、类的复习

1. 收集表单数据 包含表单的组件分类 受控组件——页面中所有输入类的DOM,随着输入,把值存维护在状态里,需要用的时候去状态里取值(推荐,避免了过渡使用ref)非受控组件——页面中所有输入类的DOM,现用现取…

Java 并发编程 —— Fork/Join 框架的原理详解

目录 一. 前言 二. 并发和并行 2.1. 并发 2.2. 并行 2.3. 分治法 三. ForkJoin 并行处理框架的理论 3.1. ForkJoin 框架概述 3.2. ForkJoin 框架原理 3.3. 工作窃取算法 四. ForkJoin 并行处理框架的实现 4.1. ForkJoinPool 类 4.2. ForkJoinWorkerThread 类 4.3.…

MongoDB的原子操作findAndModify和findOneAndUpdate

本文主要介绍MongoDB的原子操作findAndModify和findOneAndUpdate。 目录 MongoDB的原子操作一、findAndModify二、findOneAndUpdate MongoDB的原子操作 MongoDB的原子操作指的是在单个操作中对数据库的数据进行读取和修改,并确保操作是原子的,即要么完全…

Swagger2之SpringBoot集成使用

前言: 我们对于Mybatis-Plus的分享较多,都是接触的一些数据库相关的知识,今天给大家带来的是Swagger2 Swagger2 1.介绍: Swagger2是一个规范和完整的框架,用于生成、描述、调用和可视化Restful风格的web服务&#xff…

pip 命令及使用

1、安装 pip install package_name 2、卸载 pip uninstall package_name 3、查看 pip list 4、更新 pip install -U package_name