好的,我有这个代码:
<?php
//this is the thispage.php
$file = "data.txt";
$name = $_POST['name'];
$url = $_POST['url'];
$data = file('data.txt');
$i = 1;
foreach ($data as $line) {
$line = explode('|', $line);
$i++;
}
if (isset($_POST['submits'])) {
$fp = fopen($file, "a+");
fwrite($fp, $i."|".$name."|".$url."|\n");
fclose($fp);
}
?>
还有这个 index.php。
<html>
<head>
</head>
<body>
<br>
<form name="form1" action="thispage.php" method="POST">
<input type="text" name="name">
<input type="text" name="url">
<input type="submit" name="submits" value="ADD"><br>
</form>
<form name="form2" action="thispage.php" method="POST">
<?php
$display = file("data.txt");
for ($i=0; $i<=count($display)-1; $i++) {
$lines = explode("|",$display[$i]);
print('<input type="hidden" name="id" value="'.$lines[0].'">
<input type="text" name="name" value="'.$lines[1].'">
<input type="text" name="url" value="'.$lines[2].'">
<input type="submit" name="update" value="UPDATE">
<input type="submit" name="delete" value="DELETE"><br>');
}
?>
</form>
</body>
</html>
这是 data.txt 包含的内容。
1|John|http://www.john.com|
2|Mark|http://www.mark.com|
3|Fred|http://www.fred.com|
4|Johnxxx|asdasdasdasd|
我遇到了困难,使这个工作正常,尝试更新和删除,我可以添加但我不能更新和删除。希望你们能帮助我,这是一个过期。提前谢谢你。
最佳答案
我不太确定你在这里要求什么,通常你会像 ulvund 所说的那样使用数据库进行这种存储,但正如你所说这是一个实验,所以我同意它;)
根据您提供的插入和查看代码,我看到了一些可能出现的问题。您说的更新和删除有问题,但是该部分没有代码。您有一些无法正常工作的代码,或者您在询问下一步该怎么做?
我在这段代码中遇到的问题
如果有人提交带有“\n”(换行符)的表单怎么办?这会弄乱您的数据(或至少几行,具体取决于\n 用户发帖的数量。
当您删除第 2 行并再次插入新行时会发生什么?由于计算行数并使用其结果构成下一个 INSERT 的 id 的方式,您最终将得到第 2 行 #4
$line = explode('|', $line); “thispage.php”中的这一行根本没有做任何事情,因为你只想计算行数,而不是将所有数据提取到一个数组中。正如我之前所说,这种编造 ID 的方式并不是一个好主意。
因此,如果这个实验对您来说值得,您需要考虑将“自动增加 ID”存储在单独的文件中,或者将数据库文件的第一行作为元数据行,包含元数据作为人工智能身份证件和其他您可能想要的东西。
关于php - 文本文件更新、添加和删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10363421/