将 HTML 个表单字段创建到数组中
Creating HTML Form Fields Into Arrays
16-6-16
你好,
我有一个带有文本、单选按钮、复选框和文本区域字段的 HTML 表单。我想将所有字段写入 CSV 文件。它正在写入 CSV 文件,但不幸的是,如果任何字段中有逗号,它会将逗号后的文本移动到下一个字段。
我做了一些研究,发现我应该使用 'fputcsv'。我发现的所有示例都是从数据库中获取数据并创建数组。我想知道如何从我的表单中的数据创建一个数组,以便我可以将它与 'fputcsv' 一起使用。下面是我的代码示例。
// Create file. If file has been created, open file.
$myfile = fopen("ZZZmycsv.csv", "a") or die("Unable to open file!");
// Write to file.
// Column headers
$msg = "First Name, Last Name, Organization, Email, City, State, Comment 1, Comment 2 \n";
// Form variables
$msg .= "$firstName, $lastName, $organization, $email, $city, $state, $comment1, $comment2 \n";
请尽可能详细地回答您的问题。
提前感谢您的时间和考虑。
PHP: 有一个函数
http://php.net/manual/en/function.fputcsv.php
编辑:复制 PHP 文档:
<?php
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen('file.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
?>
上面的例子会将下面的内容写入file.csv:
aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""
如果你使用fputcsv,已经有一个默认的转义字符(“\”)
所以你所要做的就是从表单输入中创建一个数组并将它们写入文件。
// Create file. If file has been created, open file.
$myfile = fopen("ZZZmycsv.csv", "a") or die("Unable to open file!");
// Write to file.
// Column headers
$headers = array('First Name', 'Last Name', 'Organization', 'Email', 'City', 'State', 'Comment 1', 'Comment 2');
fputcsv($myfile, $headers);
// Form variables
$formArray = array($firstName, $lastName, $organization, $email, $city, $state, $comment1, $comment2);
fputcsv($myfile, $formArray);
在此示例中,我也将 headers 写入文件,但是如果您使用的是 fopen(..., "a");这可能没有任何意义,所以你可能想使用 "w" 作为参数(如果你想在文件中存储超过 1 行,则不要写。然后不要写 headers 在每行之前)
希望这对您有所帮助,干杯
16-6-16
你好, 我有一个带有文本、单选按钮、复选框和文本区域字段的 HTML 表单。我想将所有字段写入 CSV 文件。它正在写入 CSV 文件,但不幸的是,如果任何字段中有逗号,它会将逗号后的文本移动到下一个字段。
我做了一些研究,发现我应该使用 'fputcsv'。我发现的所有示例都是从数据库中获取数据并创建数组。我想知道如何从我的表单中的数据创建一个数组,以便我可以将它与 'fputcsv' 一起使用。下面是我的代码示例。
// Create file. If file has been created, open file.
$myfile = fopen("ZZZmycsv.csv", "a") or die("Unable to open file!");
// Write to file.
// Column headers
$msg = "First Name, Last Name, Organization, Email, City, State, Comment 1, Comment 2 \n";
// Form variables
$msg .= "$firstName, $lastName, $organization, $email, $city, $state, $comment1, $comment2 \n";
请尽可能详细地回答您的问题。
提前感谢您的时间和考虑。
PHP: 有一个函数
http://php.net/manual/en/function.fputcsv.php
编辑:复制 PHP 文档:
<?php
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen('file.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
?>
上面的例子会将下面的内容写入file.csv:
aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""
如果你使用fputcsv,已经有一个默认的转义字符(“\”) 所以你所要做的就是从表单输入中创建一个数组并将它们写入文件。
// Create file. If file has been created, open file.
$myfile = fopen("ZZZmycsv.csv", "a") or die("Unable to open file!");
// Write to file.
// Column headers
$headers = array('First Name', 'Last Name', 'Organization', 'Email', 'City', 'State', 'Comment 1', 'Comment 2');
fputcsv($myfile, $headers);
// Form variables
$formArray = array($firstName, $lastName, $organization, $email, $city, $state, $comment1, $comment2);
fputcsv($myfile, $formArray);
在此示例中,我也将 headers 写入文件,但是如果您使用的是 fopen(..., "a");这可能没有任何意义,所以你可能想使用 "w" 作为参数(如果你想在文件中存储超过 1 行,则不要写。然后不要写 headers 在每行之前)
希望这对您有所帮助,干杯