我尝试删除基于所选邮件的用户聊天,但我不知道如何在不使用行号的情况下阅读该行,因为我使用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来只读取该行吗?
答案 0 :(得分:0)
是的,您必须处理整个文件以检索您要查找的ID。
唯一的其他解决方案是一些外部存储,它可以为您提供来自ID的行号。这将在数据库世界中被称为索引,在上述评论中给出@Patrick Q的建议在您的案例中很有意义:更好地使用数据库而不是文本文件用于您的用例。 SQLite是一个轻量级的,试一试。