使用php更新csv中的一个列记录

时间:2012-09-07 07:12:23

标签: php

我的csv文件中有两列,例如:

    image    gallery

    /1.jpg   /a.jpg;/b.jpg
   .....      .....

现在我想将图库内容更新为/1.jpg;/a.jpg;/b.jpg。即,将图像列和;的内容添加到图库内容。

以下是我的代码。当我运行它时。它无法更新csv.i的内容。我被卡住了。

$dir   = getcwd();
$files = scandir($dir);
foreach ($files as $file) {
$parts = pathinfo($file);
if ($parts['extension']!="csv") {
    continue;
}
if (($handle = fopen($file, "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 4096, ",")) !== FALSE) {
        $data[1]=$data[0].";".$data[1];
        fputcsv($file, $data);
    }
    fclose($handle);
}

2 个答案:

答案 0 :(得分:0)

以写入或追加模式打开文件 fputcsv期望第一个参数是资源,并且您已经给出了文件路径 这是造成问题的原因 更改 fputcsv($handle, $data);

答案 1 :(得分:0)

请先检查文件权限,之后必须更改读写的句柄,并检查数据[1]是否具有值。 因为在您的代码中,data [0]只会将行作为字符串获取,并以“;”分隔所以你必须爆炸它,之后再进行操作。