2012-03-24 106 views
0

我已经编写了一个HTML表单来收集订单的用户输入,并且还有一个PHP程序在按下Submit按钮时接收订单。此外,我得更新存储在网络服务器上的文本文件以反映订单项目。任何人都可以解释我如何去更新存储在服务器上的文本文件?谢谢..使用PHP更新web服务器上的文本文件

+0

给一些代码 – safarov 2012-03-24 10:09:23

回答

0

使用fwrite

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

UPDATE:

如果我理解你的权利,你需要这样的事:

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

好的谢谢。但我需要更新文本文件(例如:每次订购时都必须更新订单数量)。我如何去做这件事? – Milo 2012-03-24 10:13:06

+0

您可以使用订单号创建文件,在获得新订单后用'fopen'(http://php.net/fread)打开该文件,增加文件的值并重新写入该文件。如果我找到了你,那么它需要工作。 – Narek 2012-03-24 10:15:33

+0

当你说“你可以用订单号创建文件”这是否意味着我将不得不创建一个txt文件并在默认值中存储例如0,并且每次在输入数量say 3时提交表单值从0变为3? 但我想知道在提交表单后文本文件是如何增加的?表单在PHP提交时再次被处理。 您的建议非常感谢:) – Milo 2012-03-24 11:01:03

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(...但它显然会覆盖用户可能输入的任何内容。

0

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

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

当你想显示用户输入,刚读你从文件中获取文件和unserialize串并与作为数据填充输入使用相同的密钥存储在阵列中。当你想更新用户输入时,只需再次执行上述过程。

相关问题