PHP - 基于UID的CSV文件覆盖

时间:2010-07-28 18:41:20

标签: php file

我知道我知道,数据库对我想做的事情更好,但我不想要处理数据库和学习东西的麻烦。

我的CSV与

类似
TestUser,2010/07/27 13:26:25,2010/07/27 13:26:29,0.0011,0.0006,0.06
TestUser,2010/07/27 14:22:12,2010/07/27 14:22:24,0.0033,0.0027,0.27
TestUser,2010/07/27 14:22:41,2010/07/27 14:22:53,0.0033,0.0028,0.28
TestUser,2010/07/27 14:25:26,2010/07/27 14:25:33,0.0019,0.0015,0.30

第二列是我用作UID(唯一ID)的内容,因此它在CSV中永远不会相同。我用来写csv的PHP代码是:

$myFile = "data.csv";
$fh = fopen($myFile, 'a') or die("can't open file");

$stringData = $_POST["Name"].",".$_POST["DateStart"].",".$_POST["DateStop"].",".$_POST["TotalHours"].",".$_POST["Hours"].",".$_POST["Pay"]."\n";
fwrite($fh, $stringData);
fclose($fh);

如果有一个具有相同DateStart(UID)的人运行PHP,它将需要做什么,它将覆盖具有相同UID的任何东西。基本上我认为它可能必须通过每行的文件数组,然后当它到达具有相同UID的行时,它将拦截POST的内容,而不是它有什么。

我不确定这是否是实现我想要的最佳方式。

2 个答案:

答案 0 :(得分:6)

了解数据库。从长远来看,你会变得更好......

答案 1 :(得分:1)

虽然我完全同意ircmaxell(学会使用数据库),但你仍然应该对这个问题作出适当的回应。

我相信你必须逐行阅读并进行比较。不,它效率不高,但您的设置并不能真正实现效率。

“我不确定这是否是实现我想要的最佳方式。” 正如ircmaxell所建议的那样,使用数据库将非常简单。 mysql是免费的,是一块小蛋糕。像这样简单的东西可以在几个小时的时间内敲定。