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