Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php更新csv中的一列记录_Php - Fatal编程技术网

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

使用php更新csv中的一列记录,php,Php,我的csv文件中有两列,例如: image gallery /1.jpg /a.jpg;/b.jpg ..... ..... 现在我想将库内容更新为/1.jpg/a、 jpg/b、 jpg。即增加图片内容和到库内容 下面是我的代码。当我运行它时。它无法更新csv的内容。我被绊倒了 $dir = getcwd(); $files = scandir($dir); foreach ($files as $file) { $parts = pathin

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

    image    gallery

    /1.jpg   /a.jpg;/b.jpg
   .....      .....
现在我想将库内容更新为
/1.jpg/a、 jpg/b、 jpg
。即增加图片内容和
到库内容

下面是我的代码。当我运行它时。它无法更新csv的内容。我被绊倒了

$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);
}

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

请先检查文件权限,然后必须将句柄更改为读写,还请检查数据[1]是否具有相应的值。
因为在您的代码中,仅数据[0]将以字符串形式获取行,字符串以“;”分隔,因此您必须分解它,然后执行操作。

对不起,我更改了fputcsv($file,$data);正如您所说,但是库内容没有任何更改。您正在以读取模式打开文件并尝试更新。它将如何工作?它不是依赖于平台的windows或linux或unixi对不起,我是php的新手,您能告诉我如何更正代码吗?阅读本手册,它可能会帮助您
http://in2.php.net/manual/en/function.fopen.php
我建议创建新的csv文件并将数据写入其中