Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带标题(变量名)的表单到.txt_Php - Fatal编程技术网

Php 带标题(变量名)的表单到.txt

Php 带标题(变量名)的表单到.txt,php,Php,我正在将表单的输入保存到.txt文件中。我把那部分记下来了,就像这样: $myFile = "files/".$fileid. '.txt'; $fh = fopen($myFile, 'a'); $comma_delmited_list = implode("\t", $_POST) . "\n"; fwrite($fh, $comma_delmited_list); fclose($fh); 因为我有很多$\u POST变量,所以我希望在值旁边有变量的名称。因此,最佳输出如下所示: var

我正在将表单的输入保存到.txt文件中。我把那部分记下来了,就像这样:

$myFile = "files/".$fileid. '.txt';
$fh = fopen($myFile, 'a');
$comma_delmited_list = implode("\t", $_POST) . "\n";
fwrite($fh, $comma_delmited_list);
fclose($fh);
因为我有很多$\u POST变量,所以我希望在值旁边有变量的名称。因此,最佳输出如下所示:

variablename=foo、variablename2=bar
等等

这可能吗?

更新:


使用转义进行安全恢复:


使用转义进行安全还原+“$\u后期数组”:


这能解决您的问题吗?

更新:


使用转义进行安全恢复:


使用转义进行安全还原+“$\u后期数组”:



这解决了你的问题吗?< /P>是的,但是我真的敦促你考虑一个像MySQL这样的数据库。如果你必须在FURACH($$POST作为$KEY=$VAL)循环。这是可能的,但很痛苦,因为你也必须考虑逃避所有的值。为什么不使用像JSON这样的格式,或者使用PHPS-Bu建TCSV函数?是的,但是我真的敦促你考虑一个像MySQL这样的数据库,如果你必须在前缀($xPOST作为$KEY=$VAL)。这是可能的,但是很痛苦,因为你也必须考虑所有值的逃逸。为什么不使用类似JSON的格式或使用phps内置csv函数呢?不,它不会,因为这会产生其他输出,而不是OP要求的输出。不,他需要post数组键,它会内爆值。您忘记转义值。嗯,您必须转义干扰要使用的分隔字符的字符。OP使用制表符,您使用空白。如果一个键或一个值包含那个字符怎么办?你还必须注意那些不是字符串类型的值,或者有一个神奇的函数将它们转换成字符串。是的,不是很常见,但肯定有可能…不,因为这会产生其他输出,而不是OP要求的。不,他需要post数组键,它会内爆值。您忘记转义值。嗯,您必须转义干扰要使用的分离字符的字符。OP使用制表符,您使用空白。如果一个键或一个值包含那个字符怎么办?你还必须注意那些不是字符串类型的值,或者有一个神奇的函数将它们转换成字符串。是的,不是那么普遍,但肯定有可能。。。

$arr = array();
foreach ($_POST as $k => $v) {
    $arr[] = $k . ' = ' . $v;
}
$comma_delmited_list = implode(" ", $arr) . "\n";
$arr = array();
foreach ($_POST as $k => $v) {
    $arr[] = preg_replace('~\t~', ' ', preg_replace('~=~', '', $k) . ' = ' . $v);
}
$comma_delmited_list = implode("\t", $arr) . "\n";
$arr = array();
foreach ($_POST as $k => $vArray) {
    if (!is_array($vArray)) {
        $vArray = array($vArray);
    }
    $i = 0;
    foreach ($vArray as $v) {
        $arr[] = preg_replace('~\t~', ' ', preg_replace('~=~', '', $k . (count($vArray) > 0 ? $i++ : '')) . ' = ' . (string)$v);
    }
}
$comma_delmited_list = implode("\t", $arr) . "\n";