删除文本文件 php 中的一行[重复]

2024-04-07

所以我的想法是使用正则表达式在文本文件中查找特定行,然后用空白替换该行,实质上将其删除。但是,我正在努力在文本文件中重写带有空白的行

 elseif ($inquiry=='delete'){

$file= fopen("database.txt", "r+") or die("File was not found on server"); 

$search = "/^[" . $Title . "%" . $Author . "%" . $ISBN . "%" . $Publisher . "%" . $Year . "]/i";

             //search function
             // What to look for


             // open and Read from file
             $lines = file('database.txt');//array

             foreach($lines as $line){


                 // Check if the line contains the string we're looking for, and print if it does
                 if(preg_match($search, $line)){
                    echo preg_replace($line," ",$search);
                     echo "                          
                     entry deleted-<br>";
                   }
                   else{
                       echo "&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
                       entry not found<br>";
                   }
             }
             fclose($file);
         }

这个问题可以更简单地分解为两个不同的问题。

  1. 查找给定字符串中子字符串的偏移量
  2. 用字符串的其余部分覆盖从其偏移量末尾开始的子字符串

您可以通过简单的操作完成第一个strpos()针/大海捞针搜索。这里不需要正则表达式。

第二种情况只需要知道字符串(文件)中子字符串的偏移量和长度,这样您就可以获取字符串的其余部分(文件的其余部分)并从给定的偏移量开始覆盖,截断字符串的其余部分文件。

此解决方案有两种不同的方法。

  1. 您可以在内存中完成整个操作
  2. 你可以在磁盘上完成

如果文件很大(至少是文件大小的两倍),第一个显然需要更多内存。第二种方法在内存上更加保守,但需要更多的工作来实现。

内存中实现

我将使用内存中的实现,因为它更容易编写和解释。

为了演示的目的,我们假设该文件database.txt包含以下内容:



Line 1
Line 2
Line 3
  

假设我们要删除Line 2从这个文件。

$searchString = "Line 2\n"; // The line we want to remove

$string = file_get_contents("database.txt");
$offset = strpos($string, $searchString);

// The part of the file before the search string
$part1 = substr($string, 0, $offset);

// The part of the file after the search string
$part2 = substr($string, $offset + strlen($searchString));

// Now we glue them back together
file_put_contents("database.txt", $part1 . $part2);

您实际上已经删除了有问题的行。该文件现在应该如下所示...



Line 1
Line 3
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除文本文件 php 中的一行[重复] 的相关文章

  • 如何使用 php 将 *.xlsb 转换为数组或 *.csv

    我正在尝试转换 xlsb文件到php array or csv文件 或至少 xls 我尝试使用PHPExcel 但看起来它无法识别该文件中的内容 我注意到 你可以重命名 xlsb文件到 zip文件 然后使用命令行解压缩unzip zip 之
  • 使用 crypt() 加密

    我目前正在做一个非常安全的登录系统 但我是 crypt 函数的新手 需要一些快速帮助 我在注册过程中使用 crypt 加密密码字符串并将其保存到数据库中 但是 我如何在登录过程中解密密钥 或者我应该怎么做 或者是否可以对提交的密码字符串进行
  • 如何修复 Laravel 中未找到的“PDF”类

    在我的 Laravel 应用程序中遇到以下错误 CollaboPDFController php 第 14 行中的 FatalErrorException 未找到 PDF 类 这是我的ColaboPDFController php
  • C++ 相当于 PHP 的 pack()

    我的问题很简单 有没有类似 PHP 的pack and unpack C STL 中的函数 如果没有 是否有其他方法可以实现相同的目标 https www php net pack https www php net pack Thanks
  • WordPress 安装中发现的恶意 PHP 代码有什么作用?

    我能够解码在一些 WordPress 文件中找到的以下 PHP 脚本 只是出于好奇 有人可以告诉我这段代码实际上是做什么的吗 看起来它已经以某种方式复制到同一服务器上的其他 WordPress 安装中
  • 如何使用 php imap 将邮件消息移动到文件夹

    我似乎无法将邮件移至已保存的文件夹 这是我的代码 mbox imap open mail server mail port mail folder mail username mail password or die Error openi
  • 从目录中读取所有文件内容 - php

    这实际上是一个简单的任务 我想显示指定文件夹中所有文件的内容 我正在传递目录名称 echo a href row qname a 在第二页上 我正在迭代目录内容 while entryname readdir myDirectory if
  • 如何使用 RewriteRule 来为 PHP 修改 $_SERVER['REQUEST_URI'] ?

    有了这个 htaccess RewriteEngine On RewriteRule foo foo 1 here I tried L PT C etc RewriteRule index php L 我已经尝试了第一个 RewriteRu
  • 维护 HttpUrlConnection 调用之间的会话(Native/Webview)

    让我从我做的开始desire 我想制作一个应用程序part native and part webviews Problem 维护本机和 webview 部分之间的会话 My 处理方法 this 我打算实现一个本机登录 其中我向用户展示两个
  • 无法在 PHPUnit 中使用数据提供程序运行单个测试

    使用命令行运行测试时遇到问题 如果我像这样运行 phpunit phpunit no configuration filter testAdd DataTest DataProviderTest php 效果很好 但是我们使用正则表达式来准
  • PHP:展平数组-最快的方法? [复制]

    这个问题在这里已经有答案了 是否有任何快速方法可以在不运行 foreach 循环的情况下展平数组并选择子键 在本例中为 键 和 值 或者 foreach 始终是最快的方法 Array 0 gt Array key gt string val
  • SVG 转 JPG / PNG

    有没有工作模块可以convert a SVG image into像素格式如JPEG or PNG 看看蜡染工具包 具体来说是光栅化器 http xmlgraphics apache org batik tools rasterizer h
  • phpstorm xdebug 与 symfony2 项目

    我正在尝试使用 xdebug 和 phpstorm 调试 symfony2 应用程序 我的本地开发环境是Ubuntu 14 04 with apache2 Xdebug版本是2 2 7 我在另一个 php 不是 symfony2 项目上使用
  • Heredoc:常用的“EOT”实际上是什么意思?

    PHP s 定界例子 http www php net manual en language types string php language types string syntax heredoc似乎总是使用 EOT 有时是 EOD 作
  • 您可以使用 MySQL 查询来完整创建数据库的副本吗

    我有一个包含 5 个表的 MySQL 数据库的实时版本和一个测试版本 我不断使用 phpMyAdmin 将实时版本中的每个表复制到测试版本 有谁有mysql查询语句来制作数据库的完整副本吗 查询字符串需要考虑结构 数据 自动增量值以及与需要
  • 如何在 PHP >= 5.3 严格模式下向对象添加属性而不产生错误

    这必须很简单 但我似乎找不到答案 我有一个通用的 stdClass 对象 foo没有属性 我想添加一个新属性 bar尚未定义 如果我这样做 foo new StdClass foo gt bar 1234 严格模式下的 PHP 会抱怨 将属
  • PHP 相当于朋友或内部

    php 中是否有相当于 朋友 或 内部 的东西 如果没有 是否有任何模式可以遵循来实现这种行为 Edit 抱歉 但标准 Php 不是我想要的 我正在寻找类似于马戏团长所做的事情 我有一些类在后端进行 C 风格的系统调用 并且杂耍已经开始变得
  • 有关于 PHP 中的 V8JS 的文档吗?

    有没有关于V8JS的文档 我是否只需要标准 PHP 或一些扩展即可使用 V8JS 我将非常感谢有关 PHP 中的 V8JS 的任何信息 要求 PHP 5 3 3 和 V8 库和标头安装在正确的路径中 Install http www php
  • PHP 中的坏词过滤器?

    我正在用 PHP 编写一个坏词过滤器 我在数组中有一个坏词列表 方法 clean text 的写法如下 public static function cleanse text originalstring if self is sorted
  • 在 PHP 命令行上显示完整的堆栈跟踪

    Problem 我的 PHP 堆栈跟踪缩写为 Stack trace 0 www html table app create php 128 SoapClient gt call call Array 1 www html table ap

随机推荐

  • 异步顺序调用方法

    我有一个在方法中调用的方法列表 如下所示 this doOneThing someOtherObject doASecondThing this doSomethingElse 当这是同步时 它们会一个接一个地执行 这是必需的 但现在我有
  • WPF 数据绑定:根据 var 的内容启用/禁用控件?

    我的表单上有一个按钮 仅当在树视图 或选项卡项中的列表视图 中选择一个项目时才应启用该按钮 当选择一个项目时 它的值将存储在字符串成员变量中 我可以绑定吗IsEnabled按钮的属性到成员变量的内容 也就是说 如果成员变量不为空 则启用该按
  • 杀死一个线程

    我正在处理的项目中有以下代码片段 public void Start Thread t new Thread NotifyIfNecessary Threads Add t t Start t Abort 我想要的是线程 t 应该执行方法
  • 带参数名称和冒号的 C# 方法调用

    我有时开始注意到 当我在 C 中进行方法调用时 我调用的方法的参数名称将显示在附加冒号的智能感知列表中 然后我可以格式化该方法如此称呼 MethodCall parameter1 value1 parameter2 value2 这是新的语
  • 样板代码替换 - 这段代码有什么不好的地方吗?

    我最近创建了这两个 不相关的 方法来替换我的 winforms 应用程序中的大量样板代码 据我所知 它们工作正常 但我需要一些保证 建议来确定是否存在我可能遗漏的一些问题 从记忆里 static class SafeInvoker Util
  • 根据 GPS 坐标计算平均速度的最佳实践

    我这里有一个可以给我 GPS 坐标的设备 我可以定义的时间间隔 我想用它来计算驾驶或驾车旅行时的平均速度 实际上 我使用了正交公式来计算两点之间的距离 然后将其除以给定的时间间隔 通过我遵循的实施这个词 http de wikipedia
  • 在Webpack中通过代码将nonce设置为样式标签

    因为我想启用内容安全策略 CSP noncestyle 属性 所以我需要设置nonce通过代码动态调整样式 网页包设置 devServer contentBase dist watchContentBase true headers Con
  • 为什么我的 mongodb 集合会自动删除?

    我在三个 EC2 实例中有一个 MongoDB 客户端 并且创建了一个副本集 上次我遇到了空间问题约束 https askubuntu com questions 864631 amazon ec2 instance ubuntu 16 0
  • 核心数据实体中布尔属性的类型是什么?

    我以编程方式使用核心数据 即不使用 xcdatamodel数据模型文件 其方式与 Apple 中描述的方式大致相同核心数据实用程序教程 http developer apple com documentation Cocoa Concept
  • 静态数据成员模板专业化的实例化点在哪里

    考虑下面的代码 include
  • Java-如何通过单击按钮添加更多文本字段?

    我创建了一个frame在Java中有一些textfields and buttons在里面 假设用户想要更多文本字段 例如添加更多数据 我想放一个button当用户点击时the button 然后一个新的textfield应该出现 然后用户
  • 如何使新的“使用 Google 登录”按钮在页面重新加载时保留用户登录状态?

    谷歌正在弃用旧的登录按钮 https developers google com identity sign in web sign in有利于新的那一个 https developers google com identity gsi w
  • 将字符串修剪到一定的字数

    我的模板中有一个描述 p data description p 我想将此描述修剪为特定字数 例如前 20 个字 我见过很多过滤器 但它们都会修剪某些字符 在大多数情况下 这会导致最后一个单词中断 您需要使用空格将描述字符串拆分为单词 然后对
  • 有人可以向我解释一下这个“StaleDataException”吗

    有人可以向我解释一下吗StaleDataException 07 11 19 58 23 298 E AndroidRuntime 1044 Uncaught handler thread main exiting due to uncau
  • 如何在 JavaScript 和 Python 中对 unicode 字符串进行 Base64 编码?

    我需要一种加密算法 将文本加密到文本 输入文本可以是 unicode 输出应该是 a z A Z 0 9 最多 64 个字符 并且可以再次解密为unicode 它应该用 javascript 和 python 实现 如果已经有一些图书馆可以
  • 无法打开意图android的pdf文件

    我彻底检查了pdf文件是 在 storage emulated 0 Download Abcd pdf 但无法有意打开它 我在各种视图中打开它 其中一些会导致错误 无法打开文件 微软的话说道 check file in the device
  • 在tkinter中生成点击事件

    我正在尝试对我的 tkinter GUI 进行单元测试 因此我尝试从单独的线程生成点击事件 下面是测试 Tkinter Button 的示例 import unittest threading from Tkinter import cla
  • 我的枚举可以有友好的名称吗? [复制]

    这个问题在这里已经有答案了 我有以下内容enum public enum myEnum ThisNameWorks This Name doesn t work Neither does this 是不是不可能有enum带有 友好名称 你可
  • PHP如何获取基域/url?

    function url if isset SERVER HTTPS protocol SERVER HTTPS SERVER HTTPS off https http else protocol http return protocol
  • 删除文本文件 php 中的一行[重复]

    这个问题在这里已经有答案了 所以我的想法是使用正则表达式在文本文件中查找特定行 然后用空白替换该行 实质上将其删除 但是 我正在努力在文本文件中重写带有空白的行 elseif inquiry delete file fopen databa