如何使用给定的唯一ID而不是行号

时间:2017-10-18 19:25:54

标签: php file

我尝试删除基于所选邮件的用户聊天,但我不知道如何在不使用行号的情况下阅读该行,因为我使用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来只读取该行吗?

1 个答案:

答案 0 :(得分:0)

是的,您必须处理整个文件以检索您要查找的ID。

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