如何使用 php 将输入值写入文件

How to write input values to a file with php

所以我目前的工作正常,但是我无法获得正确的代码来使其完全按照我的意愿工作。目前这是我的代码:

$type = $_POST['type']; 
$size = $_POST['size']; 
$age = $_POST['age'];
$gender = $_POST['gender']; 
$traits = $_POST['traits']; 
$comments = $_POST['comments']; 
$Name = $_POST['firstn'];
$Email = $_POST['email']; 

// the name of the file you're writing to
$myFile = "info.txt";

// opens the file for appending (file must already exist)
$fh = fopen($myFile, 'a');

// Makes a CSV list of your post data
$colon_delmited_list = implode(",", $_POST) . "\n";

// Write to the file
fwrite($fh, $colon_delmited_list);

// You're done
fclose($fh);

这将写入一个文本文件,内容如下:

Circle, Large, 11, Male, Smart, very nice, Kyle, Kyle@gmail.com

我从 php 页面获取所有这些值,但是我希望文件中的值用冒号而不是逗号分隔,而且我还想实现一个计数,其中每个条目都已编号。

这是一个例子:

1:Circle: Large: 11: Male: Smart: very nice: Kyle: Kyle@gmail.com

2:Square: Small: 14: Female: Smart: very nice: Kylie: Kylie@gmail.com

代码本身很简单,如果你有一个循环,你会这样做:

$c = 1; // counter

// inside the loop
$colon_delmited_list = implode(": ", array_merge(array($c++), $_POST)) . "\n";

此行创建了一个临时数组,其中包含计数器加上您使用的原始数组元素,以冒号(和 space)分隔。有很多方法可以做到,这只是我发现最快的一种。

如果您的计数器是动态的(一直附加到文件中),您应该先 count the number of lines in the file 然后将它递增 1。

显然,您只需要更改 implode() 函数使用的胶水参数(有关详细信息,请参阅其 doc)。

也就是说,您必须将内爆线更改为:

$colon_delmited_list = implode(":", $_POST) . "\n";