在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,用分隔符“:”分隔,并用刚收到的数据发出请求
直到这里,酷。我还有另一个文件(一个HTML表单),允许我在文件末尾添加它。但我的问题是下一个:

我希望能够添加和删除该文件,以便在下一次检查完成时(每30秒检查一次),数据应该更新

例如:

host.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。如果要将旧阵列(例如存储在会话中)镜像到从新文件伪造的阵列,则需要镜像两个阵列。参考资料:)