在PHP列表中添加和删除数据
我正在开发一个应用程序,它使用一些保存的数据在以后使用它。 我不能使用数据库,所以这必须是基于文件的 事情是这样的:在PHP列表中添加和删除数据,php,Php,我正在开发一个应用程序,它使用一些保存的数据在以后使用它。 我不能使用数据库,所以这必须是基于文件的 事情是这样的: Host: Host1 | Service: Service1 | Status: Warning (this will depend on the HTTP request I will make) (X) Host: Host1 | Service: Service2 | Status: OK (X) Host: Host3
Host: Host1 | Service: Service1 | Status: Warning (this will depend on the HTTP request I will make) (X)
Host: Host1 | Service: Service2 | Status: OK (X)
Host: Host3 | Service: Service1 | Status: Critical (X)
- 一个名为hosts.txt的文件名,每行包含host:service(diff hosts和services)
- 我的PHP文件逐行读取txt,用分隔符“:”分隔,并用刚收到的数据发出请求
host1:service1
host1:service2
host2:service2
host3:service1
现在,我希望能够将一个新的host:service添加到列表中(我已经通过在文本文件末尾添加新数据完成了这项工作,然后在下一次检查中,php将逐行再次读取时,该数据将被包括在内)。
现在,如何从文件中删除host:service
我的意思是,在读取文件后,PHP将生成如下内容:
Host: Host1 | Service: Service1 | Status: Warning (this will depend on the HTTP request I will make) (X)
Host: Host1 | Service: Service2 | Status: OK (X)
Host: Host3 | Service: Service1 | Status: Critical (X)
我想能够删除一个主机:服务从列表(和文件)只需点击(X)。这是可能的家伙吗?我有点迷失(这将是我很容易与数据库工作,但我不能在这个项目上)
我希望我能弄清楚一些事情。
提前感谢,,
关于。大致如下:
1) 对文本文件中的输入进行分解,这样就有了一个编号数组
2) 为html中的每一行设置一个id(每个行号的整数)
3) 创建一个具有“单击”侦听器的jquery函数
4) 创建一个以整数作为输入的AJAX脚本
5) 再次读取hosts.txt,删除与数字对应的行(unset($array['linenumber']))
6) 使用enters内爆,写入文件(覆盖旧文件)
7) 在PHP中重新加载页面(或隐藏行)要执行以下操作:
Host: Host1 | Service: Service1 | Status: Warning (this will depend on the HTTP request I will make) (X)
Host: Host1 | Service: Service2 | Status: OK (X)
Host: Host3 | Service: Service1 | Status: Critical (X)
代码
$string = 'host1:service1
host1:service2
host2:service2
host3:service1';
$splitted = explode("\n", $string);
$data = array();
foreach ($splitted as $key => $value) {
$data[$key] = explode(':', $value);
}
echo '<pre>';
print_r($data);
echo '<pre>';
如果您在输出数据时仍有问题,请随时发表评论,我会更新答案。您不能使用数据库,因为:您不知道如何使用?他们反对你的宗教?为什么?数据库是“文件”,因此是基于文件的。php有基于txt文件的数据库系统,还有SQLITE。@CaptainPayAnalytic:这是因为它必须进行本地检查,我无法在主机上安装SQL server。我有一个可移植的PHP软件来运行它(因为我不擅长JS)。所以你没有理由不能使用数据库!非常感谢你。我已经有了类似的东西,但是我没有一行一行地读取文件,然后按“:”((编辑:抱歉,我想添加一行,但我保存了))分解我的问题是我想保存回这些东西,所以我如何知道我删除了哪一个数组或有多少个新数组?我的意思是,如果我删除了数组[2],但添加了5个新的数组,我怎么知道它应该再循环7次呢?我想我对此不是很清楚,但如果你不明白,请让我知道;您可以像这样将文件内容读入字符串
$string=file\u get\u contents('filename.txt')
。这样你就得到了与我答案中的字符串完全相同的东西。如果需要重新检查数组长度,可以在循环内部执行count($array)
检查,以便确定下一步要做什么,甚至可以在需要时中断循环break代码>。如果要将旧阵列(例如存储在会话中)镜像到从新文件伪造的阵列,则需要镜像两个阵列。参考资料:)