2012-08-27 17 views
0

我試圖從HTML文件的表單中使用PHP fputcsv函數生成一個包含名稱和電子郵件地址的CSV文件。但我無法將變量的值傳遞給數組,並且它返回錯誤消息。如何將變量的值傳遞給PHP中的數組並將其保存爲CSV文件?

我的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

,而不是分裂()現在有[explode()](http://php.net/manual/de/function.explode.php) – Felix

+1

Felix說的是,如果你不贊成使用,這意味着PHP不再支持功能拆分。它被重新編碼並重命名爲爆炸。查找它的文檔,並且您將具有相同的功能。 – thatidiotguy

+0

謝謝,現在我沒有收到任何錯誤,但不是實際數據,而是使用文本$ name和$ email保存CSV文件。我如何傳遞數組中的變量值? – Gigacore

回答

0

單引號不會用字符串中的值替換您的變量。

您可以使用雙引號

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

而且由於這些字符串只包含你的變量,只跳過報價一起

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

進一步的文檔,請參閱docs

+0

完美。這工作。謝謝! – Gigacore

+0

此外,在電子表格中打開時,這些值將保存在行中而不是兩個單獨的列中。如何將姓名和電子郵件保存在兩個單獨的列中?而我注意到,在記事本中打開時沒有逗號分隔符。 – Gigacore

+0

再次,文檔([fputcsv](http://at2.php.net/manual/en/function.fputcsv.php))是你的朋友,請參閱'delimiter'參數 – Felix

0

錯誤消息告訴你什麼是錯誤的:功能split()已棄用,這意味着它已過時(舊的,將被取消d在PHP的未來更新中),PHP會警告您不要使用它。

PHP's online manual for split()幫助您找到其他功能來實現您想要的功能,例如explode()preg_split()

0

在你的錯誤,並在PHP手冊該功能在http://php.net/manual/en/function.split.php

這個功能提到已被棄用的PHP 5.3.0的。依靠這個 功能是非常不鼓勵的。

Deprecated =>此功能不再您的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)); 
    } 
+0

非常感謝你:) – Gigacore

相關問題