将数据添加到列表中并将其删除PHP
我正在使用一些保存的数据以后使用它的应用程序。 我不能使用数据库,所以这必须是基于文件的。将数据添加到列表中并将其删除PHP
事情是这样的:
- 称为HOSTS.TXT文件名包含主机:在每一行(DIFF主机和服务)的服务。
- 我的PHP文件逐行读取txt,按分隔符“:”分隔,并用刚刚收到的数据发出请求。
直到这里,很酷。我还有另一个文件(一个HTML表单),允许我在文件末尾添加该文件。但我的问题是下一个:
我想能够添加和从文件中删除,所以当下一次检查完成(检查每30秒进行一次)数据应该更新。
例子:
host.txt包含此:
host1:service1
host1:service2
host2:service2
host3:service1
现在我希望能够添加新主机:服务列表(我已经通过添加新的做到了这一点数据在文本文件的末尾,然后将包括在下一次检查时,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 | Service: Service1 | Status: Critical (X)
我希望能够删除主机:从列表(文件)服务只是通过点击(X)。这是可能的家伙?我有点迷茫(对我来说,使用数据库很容易,但我不能在这个项目上)。
我希望我能弄清楚一些事情。 在此先感谢, 此致敬礼。
在PHP中,你想要做的事是这样的:现在
代码
$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>';
你哈如果某些值匹配或是特定类别,您可以检查结构化数据。对输出的控制现在完全掌握在你的手中。
输出
Array
(
[0] => Array
(
[0] => host1
[1] => service1
)
[1] => Array
(
[0] => host1
[1] => service2
)
[2] => Array
(
[0] => host2
[1] => service2
)
[3] => Array
(
[0] => host3
[1] => service1
)
)
如果仍然有输出数据的问题,随便问一个评论,我会更新的答案。
非常感谢。我已经有这样的东西,但没有一个字符串,我逐行阅读文件,然后爆炸“:”((编辑:对不起,我想添加一个新的行,但我保存))我的问题是,我想保存这些东西,我怎么知道我已经删除了哪一个数组或者有多少个新的数组?我的意思是如果我删除数组[2],但我增加了5个新的,我怎么知道它应该循环7次?我想我对此不太清楚,但如果你不明白,请告诉我。 – usrb1n 2013-03-27 11:35:14
相当简单;你可以像这样读取文件的内容到字符串中; '$ string = file_get_contents('filename.txt')'。这样你就和我的答案中的字符串完全一样。如果你需要重新检查数组的长度,你可以在循环内执行一个“count($ array)”检查,这样你就可以确定下一步要做什么,或者如果需要'break;'则甚至可以中断循环。如果您想将旧数组(例如存储在SESSION中)映射到从新文件伪造的数组,则需要镜像这两个数组。参考:http://www.php.net/manual/en/function.array-diff.php :) – 2013-03-27 11:37:09
大致为:
1)做一个发生爆炸,让你有一个编号的阵列中文本文件进入。
2)设置每个线路的ID的HTML(整数每行数)
3)使具有一个jquery功能的“点击”听者
4)创建一个AJAX脚本具有整数作为输入
5)读取主机。TXT再次,去除用数字(未设置($阵列[“行号”]))
6)与进入内爆所对应的线,写入文件(覆盖旧的一个)
7)的重载页面(或隐藏行)
你不能使用数据库,因为:你不知道如何?他们反对你的宗教?为什么?数据库是“文件”,基于文件也是如此。有基于txt文件的数据库系统的PHP和SQLITE。 – 2013-03-27 11:27:34
@CaptainPayalytic:这是因为这必须进行本地检查,我无法在主机上安装SQL服务器。我有一个可移植的PHP软件来运行它(因为我不擅长JS)。 – usrb1n 2013-03-27 11:39:46
正如我刚才所说,有基于txt的数据库系统的PHP(http://www.c-worker.ch/txtdbapi/manual_html_eng/)和SQLITE写入本地文件(您在开放语句中指定pathe)。所以你没有理由不能使用数据库! – 2013-03-27 11:43:19