我是PHP的新手,无法弄清楚这一点。
我有2个输入(姓名和电子邮件)。我需要将其写入CSV文件并单击下载。我发现我需要fputcsv()函数并形成数组数组......
但不知何故,我无法正确看到如何正确地形成这个数组......有人可以给我一个提示吗?
我已经知道了txt文件......但是根本无法将其转换为csv ...
public function invokeAction(CakeRequest $request){
if ($this->request->is('post')) {
if(isset($_POST['subName']) && isset($_POST['subEmail'])) {
$data = $_POST['subName'] . '-' . $_POST['subEmail'] . "\n";
$ret = file_put_contents('../tmp/subs.txt', $data, FILE_APPEND | LOCK_EX);
unset($_POST['subName']);
unset($_POST['subEmail']);
}
}
答案 0 :(得分:0)
您唯一需要做的就是使用","替换subName和subEmail之间的短划线。并将您的文件重命名为subs.csv。
public function invokeAction(CakeRequest $request){
if ($this->request->is('post')) {
if(isset($_POST['subName']) && isset($_POST['subEmail'])) {
$data = $_POST['subName'] . ',' . $_POST['subEmail'] . "\n";
$ret = file_put_contents('../tmp/subs.csv', $data, FILE_APPEND | LOCK_EX);
unset($_POST['subName']);
unset($_POST['subEmail']);
}
}
CSV不是特殊的文件格式。它只是具有特定格式的纯文本。
答案 1 :(得分:0)
谢谢Wim的回答。我的解决方案几乎相同,但万一有人需要它:
public function invokeAction(CakeRequest $request){
if ($this->request->is('post')) {
if(isset($_POST['subName']) && isset($_POST['subEmail'])) {
// $data = $_POST['subName'] . '-' . $_POST['subEmail'] . "\n";
$subName=$_POST['subName'];
$subEmail=$_POST['subEmail'];
$subs[] = array("$subName","$subEmail");
//$ret = file_put_contents('../tmp/subs.txt', $data, FILE_APPEND | LOCK_EX);
$fp = fopen('../webroot/subs.csv', 'a');
foreach ($subs as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
unset($_POST['subName']);
unset($_POST['subEmail']);
}
}