PHP 脚本抓取整行

2024-03-06

感谢您花时间阅读本文,无论内容的质量如何,我都会感激每一个回复。 :)

我正在尝试创建一个在文本文件中搜索特定文本的 php 脚本。用户在 HTML 表单中输入特定文本,PHP 脚本应在文本文件中搜索该特定文本。

HTML表单的输入字段的值为“username”,在php文档中,变量“$username”是输入的数据,示例如下:

$username = $_POST['username'];

下面的文本文件称为“begin.txt”:

“奥拉1”“2010年1月7日15:28”“55621454”“123456”“123456.00”

“用户名”“7/3/2010 6:21 PM”“55621454”“123456”“123456.00”

“奥拉1” “07/07/2010 15:05” “55621454” “189450” “123456.00”

“SUPREMEGAMER” “7/8/2010 6:42 PM” “55621454” “123456” “123456.00”

如果一个人在 HTML 表单中输入“AULLAH1”,我希望 php 脚本抓取文本文件中的最后一个“AULLAH1”条目(例如,它应该抓取第三行而不是第一行,因为第三行是最后一个条目包含文本“AULLAH1”)。此外,当一个人输入特定文本时,它不应该简单地抓取文档或文本,而应该抓取整行: "AULLAH1" "07/07/2010 15:05 " "55621454" "189450 ” “123456.00”并将其放入 php 变量中,也许类似于“$grabbed”?如果可能的话。

感谢所有帮助,我期待您的回复;谢谢。 :) 如果我没有清楚地解释任何内容和/或您希望我更详细地解释,请回复。 :)

谢谢。


您可以使用SplFileObject http://de3.php.net/manual/en/class.splfileobject.php并逐行迭代文件。

请注意,迭代文件的内存效率比使用file() or file_get_contents()因为它不会将整个文件内容读取到数组或变量中。

$username = 'AULLAH1';
$file = new SplFileObject("data.csv");
$grabbed = FALSE;
while (!$file->eof()) {
     $data = $file->fgetcsv(' ');
     if($data[0] === $username) {
         $grabbed = $file->current();
     }
}
echo $grabbed;

Because fgetcsv()解析行时考虑了分隔符、包围符和转义字符,但速度并不快。如果您必须以这种方式解析数百行或数千行,请确保您确实需要它。


另一种方法是检查当前行是否在某处包含用户名字符串。在您在问题中显示的文件格式中,这是可行的,因为其余字段包含数字,因此不会出现任何误报:

$username = 'AULLAH1';
$file = new SplFileObject("data.txt");
$grabbed = FALSE;
foreach($file as $line) {
    if(strpos($line, $username) !== FALSE) {
        $grabbed = $line;
    }
}
echo $grabbed;

如果您想确保在位置 1 找到 $username,请更改if测试条件=== 1.


如果由于某种原因,您想要拥有用户名出现的所有行,您可以编写一个自定义过滤器迭代器来迭代文件内容,例如

class UsernameFilter extends FilterIterator
{
    protected $_username;
    public function __construct(Iterator $iterator, $username)
    {
        $this->_username = $username;
        parent::__construct($iterator);
    }
    public function accept()
    {
        return strpos($this->current(), $this->_username) !== FALSE;
    }
}

然后你可以简单地使用foreach。 FilterIterator 将把每一行传递给accept()并且只有那些返回 TRUE 的行才被实际使用。

$filteredLines = new UsernameFilter(new SplFileObject('data.txt'), 'AULLAH1');
foreach($filteredLines as $line) {
    echo $line;
}

上面将输出

"AULLAH1" "01/07/2010 15:28 " "55621454" "123456" "123456.00"
"AULLAH1" "07/07/2010 15:05 " "55621454" "189450" "123456.00"

如果你想把这些行放在一个数组中,你可以这样做

$lines = iterator_to_array($filteredLines);

并查看最后一项

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

PHP 脚本抓取整行 的相关文章

  • PHP md5() 给出与 MySQL md5 不同的输出

    我正在尝试设置登录系统 但无法解决一个问题 PHP 通过 md5 给了我另一个输出 比MySQL 例如 在 PHP 中 password md5 brickmasterj return password 返回 3aa7b18f304e2e2
  • 用于查找 标记之间的所有内容的正则表达式

    我正在尝试找到一种方法来列出之间的所有内容 a and a 标签 所以我有一个链接列表 我想获取链接的名称 不是链接的位置 而是它们在页面上的名称 对我来说真的很有帮助 目前我有这个 lines preg split r n r conte
  • 针对 Woocommerce 中多个产品类别计数的 ajax 添加到购物车的 JS 警报

    在 Woocommerce 中 当达到特定产品类别的购物车中的产品的特定数量时 我尝试显示 JavaScript 甜蜜警报 并在达到二级类别的产品的特定数量时显示另一个警报 商品通过 AJAX 添加到购物车 这就是我想使用 JavaScri
  • 发送 QUERY 数据包时出错。 PID=9565

    我有两个不同的环境开发和生活几乎都是相同的 但上述 标题中 警告仅在开发模式下发生 在此警告之前 我还收到错误消息 允许的内存大小 268435456 字节已耗尽 这仅发生在开发模式下 使用 PHP 版本 5 6 和 mysql 不是 my
  • PHP IMAP 解码消息

    我有通过 Base64 编码和 8 位编码发送的电子邮件 我想知道如何使用 imap fetchstruct 检查消息的编码 已经这样做了大约两个小时 所以丢失了 然后正确解码 Gmail 和 Mailbox iOS 上的应用程序 将其作为
  • PHP 命名空间 - 提升一个级别?

    示例1 命名空间 Inori Test 主测试类 示例2 命名空间 Inori Test SubTest SubTest 类扩展了 问题 有没有办法快速提升命名空间的级别 以便 SubTest 可以扩展 MainTest 就像是 MainT
  • 创建横幅交换算法来轮播广告

    我正在构建广告横幅轮播脚本基于印象整个月均匀地显示广告 每次请求显示广告时都会进行计算 所以这将是即时完成的 广告应显示为一个接一个轮流播放 而不是仅显示一个广告 1000 次展示 然后显示另一个广告 1000 次展示 大多数情况下 它应该
  • Jquery .ajax method =“post”但$_POST为空

    ajax method post url save php data id 453 action test beforeSend function complete function success function html mydiv
  • 从中间部分匹配完成建议elasticsearch

    我有一个名为搜索建议具有以下 search suggest type completion analyzer simple payloads true preserve separators false preserve position
  • 生成适用于不同时区和数据的计划

    我正在构建一个网络应用程序 指导人们早起 它会为用户生成七十天内的起床时间表 他们输入当前的上升时间和目标上升时间 然后 上升时间每周减少一定量 直到达到目标时间 用户必须登录网站并在预定时间 签到 考虑到当前登录用户的时区和夏令时 我对如
  • 在不运行控制台命令的情况下清理缓存的最佳方法是什么?

    在我的项目的管理面板中 我编写了更改要使用的数据库名称的功能 我把新的数据库名称写在parameters ini 之后必须清理缓存才能加载新配置 在不运行控制台命令的情况下清理缓存的最佳方法是什么 或者是否有另一种最佳实践如何更改当前数据库
  • Opencart 2.2.0 启用按制造商搜索

    我正在使用 OC 2 2 0 并一直在努力解决以下问题 示例 我在标题搜索中输入西门子 然后单击 显示所有结果 我的搜索页面将显示所有结果 问题是 结果列表仅包含名称中包含西门子的产品 我需要的是展示all 搜索结果列表中属于该制造商的产品
  • stdClass 类的对象无法转换为字符串

    我现在在使用 PHP 时遇到问题 收到此错误 Object of class stdClass could not be converted to string当我在我的网站中运行这部分代码时发生错误 function myaccount
  • MySQL 错误:无法创建表(errno:121“写入或更新时重复键”)

    我使用 MySQL Workbench 生成数据库的图表和代码 当我将代码放入 phpMyAdmin 时 它显示错误 1005 无法创建表wypozyczalnia wypozyczenie 错误号 121 写入或更新时密钥重复 哪里有问题
  • 如何在 PHP 中复制此 C# 哈希? (toByteArray()、ComputeHash())

    我正在尝试复制以下代码PHP 这是我必须与之交互的 API 的示例代码 API 和示例代码位于C 我的应用程序在PHP 5 3 我不是 C 开发人员 因此在执行此操作时遇到困难 C Code I am trying to replicate
  • 未捕获的异常:无法找到 Mix 文件

    我正在尝试在本地系统中运行 laravel 应用程序 我已遵循https gist github com hootlex da59b91c628a6688ceb1 https gist github com hootlex da59b91c
  • PHP 中的 is_callable 和 function_exists 到底有什么区别?

    我正在开发一个项目 在该项目中我使用了旧版本中已弃用的函数 但不希望我的脚本在旧版本中使用时停止 所以我检查该函数是否存在 如果不存在则创建它 有什么区别function exists and is callablePHP 中哪个更好用 i
  • Jquery UI:日期选择器。如何通过 $_GET 在日期选择器中设置日期

    我找不到如何设置 GET 变量来手动设置日期选择器中的日期 http jqueryui com demos datepicker http jqueryui com demos datepicker 例子 那可能吗 Thanks 在此使用
  • 使用哈希检查具有 $_POST 值的页面是否已刷新

    当将表单发布到同一个PHP页面时 正确的方法是什么来查找页面是否被意外刷新而不是再次提交 这是我现在正在使用的 tmp implode POST myHash md5 tmp if isset SESSION myHash SESSION
  • C# StreamReader 使用分隔符保存到数组

    我有一个文本文件 其中包含制表符分隔的数据 我在 C 应用程序中需要的是从文本文件中读取一行并将它们保存到一个数组中 在每个位置将它们分开 t 然后我对下一行做同样的事情 My code StreamReader sr new Stream

随机推荐

  • 如何在 Alembic 迁移中使用现有的 sqlalchemy 枚举 (Postgres)

    在过去的某个时候 我运行了一次 alembic 迁移 它创建了一个users桌子像 def upgrade op create table users sa Column id sa Integer autoincrement True n
  • Eclipse RCP 和 tycho - 无法解析 org.eclipse.swt.widgets.Button 类型。它是从所需的 .class 文件间接引用的

    情况 我有一个 Eclipse RCP 应用程序 我正在尝试使用 Eclipse 的 tycho 插件构建它 当我在 IDe 内执行 Eclipse 应用程序时 应用程序正常执行 当使用 tycho 构建应用程序时 抛出以下错误 The t
  • Linq2Sql 检索数据点

    我目前正在开发一个使用 linq2sql 作为数据库访问框架的项目 现在有很多 linq 查询 它们基本上执行以下操作 var result from
  • R tm包:utf-8文本

    我想为 utf 8 中的非英语文本创建一个词云 实际上 它是哈萨克语 文本在 tm 包的检查功能中显示得绝对正确 但是 当我搜索词频时 所有内容都显示不正确 问题在于文本显示为编码字符而不是单词 西里尔字符显示正确 结果 词云变得一团糟 是
  • 使用 Simplepie 时出现弃用错误

    我已经安装了最新的 Simplepie 代码 1 2 1 并且我正在使用他们提供的演示代码
  • 有没有办法在另一种形式上显示一种形式的一部分?

    我有一个表格 我想做的就是在另一个表单上显示该表单的一部分 我不希望它发挥作用或任何东西 我基本上只是希望它是一张图片 这可能吗 如果可能的话 如何实现 Like display new display form new rectangle
  • 具有动态形状的变量 TensorFlow

    我需要在 TensorFlow 中创建一个矩阵来存储一些值 诀窍是矩阵必须支持动态形状 我正在尝试做与 numpy 中相同的事情 myVar tf Variable tf zeros x y validate shape False whe
  • python 中的“in”和“not in”语句如何工作

    我主要学习 C 语言 并花了很多时间了解其底层实现 但我最近开始学习Python 所以这里有很多与C不同的怪癖 python 中的 in 语句如何工作 if x in array the usage of an in statement p
  • 在 C 编程中将用户输入写入文件

    我正在开发一个程序 将用户输入写入文件 然后搜索文件中的特定记录并将其输出到屏幕 我尝试使用 fgets 和 fputs 但没有成功 这是我到目前为止所拥有的 include
  • codeIgniter 分页 - 不会转到搜索结果的下一个链接

    我正在对搜索结果使用分页 搜索工作完美 搜索后显示前 10 条记录 但是 当我单击 下一步 按钮时 所有内容都会消失并显示一个空白页面 任何我的代码中可能有问题的想法将不胜感激 Model function search bookings
  • ZedGraph (.NET) - 仅具有实际值的轴标签

    使用ZedGraph http zedgraph org控制 假设我正在绘制 Y 值为 13 34 和 55 的数据 如何设置 Y 轴 以便仅显示 13 34 和 55 的文本标签 我猜网格线将同步 我不希望在数据范围内有规则间隔的标签 例
  • 使用嵌套 Parallel.For

    考虑这个例子 var x 0 for var i 0 i lt 100 i for var a i 1 a lt 100 a x 1 当打印 x 我们always得到 4950 如果我想并行化这个怎么办 这就是我想出的 Parallel F
  • 泛型数组不接受空数组作为输入

    import Foundation func insertionSort
  • 在 ember.js 中实现“有条件”后退按钮

    我正在开发一个基于 ember js 版本 1 2 的移动应用程序 我试图找到最惯用的方法来实现许多移动应用程序中常见的全局菜单切换 后退按钮模式 具体来说 它是一个位于固定顶部工具栏左侧的按钮 当用户位于应用程序的主页 索引视图时 该按钮
  • 实体框架上下文中的复杂类型是什么

    现在我正在从 Pluralsight 上的视频中学习很多有关实体框架的知识 所以请原谅我的问题 它可能看起来很新 但我无法理解复杂类型是什么或为什么我需要它们 我确实知道我必须通过注释或 Fluent Api 来映射它们 如下所示 mode
  • .Net Core、便携式、标准、紧凑、UWP 和 PCL 之间的区别?

    我听说过 Net核心 Net 便携式 Net标准 Net 紧凑型 通用Windows平台 便携式类库 所有这些都向我解释为 完整 Net 的子集 允许您针对多个平台 所以我的问题是 有什么不同 如果我想编写一个可供尽可能多的受众使用的库 哪
  • 如何在 Windows 中将文件上传到 Solr?

    我需要验证文本提取在 Windows Server 2003 上安装的 Solr 上是否正常工作 我找到的将文件上传到 Solr 的所有示例都使用如下的curl curl http localhost 8983 solr update ex
  • 检查点是否位于自定义网格几何体内部

    检查点是否位于自定义 不规则 网格几何图形内部的最简单方法是什么 如果你的网格是特写的 您可以使用 THREE js 内置光线投射器 示例代码如下 const point new THREE Vector3 2 2 2 Your point
  • 在 iPhone 上合并音频文件

    我想将 caf 文件和 mp3 文件合并为 iPhone 上的 mp3 文件 或者我可以将它们转换为 aac 然后合并它们 我该怎么做 就像Kala OK一样 我想将我的声音和音乐融合在一起 您需要将两个文件解码为 LPCM 普通旧整数 将
  • PHP 脚本抓取整行

    感谢您花时间阅读本文 无论内容的质量如何 我都会感激每一个回复 我正在尝试创建一个在文本文件中搜索特定文本的 php 脚本 用户在 HTML 表单中输入特定文本 PHP 脚本应在文本文件中搜索该特定文本 HTML表单的输入字段的值为 use