我正在尝试生成一个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));
如果我只是在数组中使用纯文本,我不会得到上述错误。我做错了什么?
答案 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));
}