0

私のcsvファイルには2つの列があります.eg:

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

2 に答える 2

0

最初にファイルのアクセス許可を確認してから、ハンドルを読み取りと書き込みの両方に変更する必要があります。また、data[1]に値があるかどうかも確認してください。あなたのコードでは、data[0]は";"で区切られた文字列としてのみ行をフェッチするためです。だからあなたはそれを爆発させ、その後操作をしなければなりません。

于 2012-09-07T07:56:15.160 に答える
0

書き込みモードまたは追加モードでファイルを開き、 fputcsv最初のパラメーターがリソースであると想定し、問題の原因となっているファイル パスを指定した場合は、それを変更します fputcsv($handle, $data);

于 2012-09-07T07:21:53.007 に答える