使用php在每行的末尾添加逗号

时间:2012-04-06 13:24:58

标签: php javascript arrays csv comma

我有一个csv文件,每行有1个电子邮件ID。我想在每个电子邮件ID后添加逗号。我想使用php在每行的末尾添加一个逗号。我怎样才能做到这一点?那是否有特定的功能?

更新 我希望这样,以便我可以在javascript中构建一个数组。

我将使用php加载csv文件,然后将其打印在我的js中。

var myCars=[<?php print $csv; ?>]; 

这样我就能做到这样的事情。

var myCars=["Saab@gmail.com","Volvo@gmail.com","BMW@gmail.com"];

或者有更好的方法吗?

5 个答案:

答案 0 :(得分:5)

$lines = file('file.csv');
foreach ( $lines as & $line ) {
    $line .= ',';
}
file_put_contents('file.new.csv', implode(PHP_EOL, $lines));

这样的事情应该做, 欢呼声

答案 1 :(得分:2)

<?php
$lines = file('org.csv');
foreach ( $lines as & $line ) {
    $line = trim( $line ) . ',';
}
file_put_contents('new.csv', implode(PHP_EOL, $lines));

答案 2 :(得分:2)

为什么不使用csv特定的功能?

$old = fopen('file.csv','r');
$new = fopen('new.csv','w+');
while($line = fgetcsv($old))
{
    fputcsv($new,$line);
}
fclose($old);
fclose($new);

上面的代码会写一个新的csv,每行一行,但如果你只想生成一个javascript数组,为什么不这样做:

$file = fopen ('file.csv','r');
$all = array();
while($line = fgetcsv($file))
{
    $all[] = $line[0];//if there is only 1 field/line
    $all = array_merge($all,$line);//if multiple
}
fclose($file);
$js_array = '["'.implode('",',$all).'"];';
//or, the way I'd advise against, but good for multi-dimensional, assoc arrays
echo 'var array = JSON.parse("'.json_encode($all).'");';

答案 3 :(得分:2)

为什么不只是

$csv = str_replace("\n", ",\n", $csv);

答案 4 :(得分:2)

您可以使用fgetcsv函数将文件导入数组,然后使用json_encode()将其回显,而不是回显整个csv字符串。这样你肯定会得到一个有效的javascript数组。它还会为您引用和编码任何字符串。

哦,记得通过一些迭代器运行数组,该迭代器将在所有字符串上运行utf8_encode。如果你的utf8字符无效,json_encode会barf。

在php.net上有很多关于这方面的不同部分的例子,但如果需要,我可以提供一些例子。