Php 如何使用给定的唯一id而不是行号来读取特定的文件行

Php 如何使用给定的唯一id而不是行号来读取特定的文件行,php,file,Php,File,我正在尝试根据所选消息删除用户聊天,但我不知道如何在不使用行号的情况下读取该行,因为我使用php文件存储聊天对话以确保安全,并且我还在包含聊天的每个php文件的第一行添加了php代码以防止直接访问 我有一个文件名conversation.php lineid | user | message | deleted ---------|------|---------|----------- 100 | joe | HI | NO 101 | pee | Hel

我正在尝试根据所选消息删除用户聊天,但我不知道如何在不使用行号的情况下读取该行,因为我使用php文件存储聊天对话以确保安全,并且我还在包含聊天的每个php文件的第一行添加了php代码以防止直接访问

我有一个文件名
conversation.php

 lineid  | user | message | deleted
---------|------|---------|-----------
100      | joe  | HI      | NO
101      | pee  | Hello   | NO
103      | kik  | Hmm     | NO
这是我的密码

<?php
    if(isset($_POST['deletechatroomid']) && isset($_POST['messageline'])){
    $chatsession = xss_protextion("char", $_POST['deletechatroomid']); /*Chat Path ID*/
    $messageline = xss_protextion("int", $_POST['messageline']); /*Chat Line ID*/

    $filePathname = dirname(__FILE__).'/chatlogs/'.$chatsession.'/conversation.php'; /*FULL FILE PATH*/


    /*
   I know that i i can identify the line number below code will get it for me but i don't want to use it because the it might delete another chat if mistak line id
   $getDeleteLine = file( $filePathname ); 
    echo $getDeleteLine[67];
   */
    }
    ?>

是的,您必须处理整个文件才能检索您要查找的id


唯一的其他解决方案是一些外部存储,它可以从id中为您提供行号。这在数据库世界中被称为索引,在您的案例中,让@Patrick Q在上述评论中的建议具有很大的意义:更好地为您的用例使用数据库,而不是文本文件。SQLite是一个轻量级的,请尝试一下。

是的,您必须处理整个文件才能检索您要查找的id


唯一的其他解决方案是一些外部存储,它可以从id中为您提供行号。这在数据库世界中被称为索引,在您的案例中,让@Patrick Q在上述评论中的建议具有很大的意义:更好地为您的用例使用数据库,而不是文本文件。SQLite是一个轻量级的,试试看。

似乎比文本更适合数据库file@PatrickQ是的,我知道在数据库中很容易做到,我仍然可以改为使用数据库。请告诉我共享主机在每个数据库表中存储的记录是否最多?而且使用数据库的速度更快了吗?当然,您必须遍历所有行,并将行id与您要查找的值进行比较,直到找到它(或用尽行数)。是的,由于您决定自己实施一个存储解决方案,您现在必须自己实施f.e.数据库已经具备的许多功能。与文本相比,似乎更适合数据库file@PatrickQ是的,我知道在数据库中很容易做到,我仍然可以改为使用数据库。请告诉我共享主机在每个数据库表中存储的记录是否最多?而且使用数据库的速度更快了吗?当然,您必须遍历所有行,并将行id与您要查找的值进行比较,直到找到它(或用尽行数)。是的,由于您决定自己实施存储解决方案,您现在必须自己实施f.e.数据库已经具备的许多功能。