如何在PHP中将变量值传递给数组并将其保存为CSV文件?

时间:2012-08-27 17:19:54

标签: php forms csv fputcsv

我正在尝试生成一个CSV文件,其中包含HTML文件中表单的名称和电子邮件地址,并使用PHP fputcsv函数。但我无法将变量的值传递给数组,并且它返回错误消息。

我的PHP文件:

<?php 
$name = $_GET["name"];
$email = $_GET["email"];

$list = array
(
'$name', '$email',
);

$file = fopen("list.csv","w");

foreach ($list as $line)
  {
  fputcsv($file,split(',',$line));
  }

fclose($file);
?>

错误消息:

Deprecated: Function split() is deprecated in F:\xampp\htdocs\test.php on line 22

Deprecated: Function split() is deprecated in F:\xampp\htdocs\test.php on line 22

我的第22行包含:

fputcsv($file,split(',',$line));

如果我只是在数组中使用纯文本,我不会得到上述错误。我做错了什么?

3 个答案:

答案 0 :(得分:0)

单引号不会将变量替换为字符串中的值。

你可以使用双引号

$list = array
(
"$name", "$email",
);

由于这些字符串只包含您的变量,因此只需跳过所有引号

$list = array
(
$name, $email,
);

有关进一步的文档,请参阅docs

答案 1 :(得分:0)

错误消息告诉您错误:函数split()已被弃用,这意味着它已过时(旧版本,将在PHP的未来更新中被停用),PHP会警告您不要使用它。

PHP's online manual for split()可帮助您找到其他功能以实现您的目标,例如explode()preg_split()

答案 2 :(得分:0)

正如你的错误和http://php.net/manual/en/function.split.php

中该函数的php手册中所述
  

自PHP 5.3.0起,此功能已被弃用。依靠这个   功能非常沮丧。

Deprecated =&gt;对于您的PHP版本,此功能不再可用

正如@Felix建议的那样,使用explode()代替split(), 阅读有关爆炸的内容:http://php.net/manual/en/function.explode.php

所以,而不是:

foreach ($list as $line)
  {
  fputcsv($file,split(',',$line));
  }

执行:

foreach ($list as $line)
  {
  fputcsv($file,explode(',',$line));
  }