使用PHP更新Web服务器上的文本文件

时间:2012-03-24 10:06:33

标签: php

我已经编写了一个HTML表单来收集订单的用户输入,还有一个PHP程序,用于在按下Submit按钮时接收订单。此外,我还要更新存储在Web服务器上的文本文件以反映订单商品。任何人都可以解释我如何更新存储在服务器上的文本文件?感谢..

4 个答案:

答案 0 :(得分:2)

您应该锁定文件以防止文件被多个用户发送的并发更新破坏。在flock函数文档中有一个锁定和写入文件的完整示例:http://es.php.net/manual/en/function.flock.php

或者,为了省去麻烦,请使用正确的数据库。 SQLite易于使用,无需设置:http://es.php.net/manual/en/book.sqlite3.php

答案 1 :(得分:1)

使用fwrite

$fp = fopen('data.txt', 'w');
fwrite($fp, $yourData);
fclose($fp);

<强>更新

如果我理解你,你需要这样的东西:

if(!empty($noOfApples)){
  $fp = fopen('data.txt', 'w+');
  $count=fread($fp,filesize('data.txt'));
  $count+=$noOfApples;
  fwrite($fp, $count);
  fclose($fp);
}

答案 2 :(得分:0)

最简单的方法是保留表单字段的数组结构,通过序列化转储$ _POST。

在用户点击提交后编写示例:

file_put_contents('myfile.txt', serialize( $_POST ) );

阅读示例:

$data = unserialize(file_get_contents('myfile.txt'));

表单字段看起来像:

<input type="text" name="myfield" value="<?php echo $data['myfield'] ?>" />

或者,你可以在技术上做$ _POST = unseralize(file_get_contents(...但它显然会覆盖用户可能输入的任何内容。

答案 3 :(得分:0)

只需存储用户输入,该键应该是输入名称和应该是内容用户输入的值。通过这种方式,您可以在数组中获取用户输入。 然后,您可以将键值对转换为具有serialize函数的字符串。现在,您可以使用以下代码将字符串存储到文件中:

$fp = fopen('user{$id}.txt', 'w');//replace the {$id} with user id
fwrite($fp, $dateFromUser);
fclose($fp);

当您想要显示用户输入时,只需读取文件并unserialize从文件中获取的字符串,并使用相同的键填充输入数据,该数据存储在数组中。当您想要更新用户输入时,请再次执行上述过程。