- 締切済み
PHP fgetcsv 置換
失礼します。 例えば要素 $hoge $piyo $temp まで要素があるとして 現在fgetcsvで読み込んだデータを $data[0]を$hogeに置換 $data[1]を$piyoに置換 $data[2]を$tempに置換といったことをやりたいです。 現在 $hoge = 1; $piyo = 2; $temp = 3; $old_fp = fopen($C_result_path, 'r'); //csvを1行をカンマ区切りで読み込む while (($old_data = fgetcsv($old_fp)) !== FALSE) { } fclose($old_fp); } この$old_dataに対して置換していきたいです。 ご教授よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- t_ohta
- ベストアンサー率38% (5238/13706)
> なんといいますか$C_result_pathの中身を書き換えたくて、 読み込んだ行をその場で書き換えると言うのは難しいので、一旦読み込んで処理をして、改めて書き出すと言うのが現実的だと思います。 同じファイル名で、CSVで書き出したいのであれば、こんな感じですかね。 ========== $hoge = 1; $piyo = 2; $temp = 3; $new_data = array(); $old_fp = fopen($C_result_path, 'r'); //csvを1行をカンマ区切りで読み込む while (($old_data = fgetcsv($old_fp)) !== FALSE) { $old_data[0] = $hoge; $old_data[1] = $piyo; $old_data[2] = $temp; $new_data[] = implode(',' , $old_data); } fclose($old_fp); } file_put_contents($C_result_path, implode("\r\n" , $new_data));
- t_ohta
- ベストアンサー率38% (5238/13706)
やりたい事がイマイチ判らないのですが、こういう事ですかね。 ========== $hoge = 1; $piyo = 2; $temp = 3; $new_data = array(); $old_fp = fopen($C_result_path, 'r'); //csvを1行をカンマ区切りで読み込む while (($old_data = fgetcsv($old_fp)) !== FALSE) { $old_data[0] = $hoge; $old_data[1] = $piyo; $old_data[2] = $temp; $new_data[] = $old_data; } fclose($old_fp); }
補足
説明が下手ですいません そういえばfopenで引数はrでは確か書き込めないですね、、、 なんといいますか$C_result_pathの中身を書き換えたくて、 $old_data[0] = $hoge; $old_data[1] = $piyo; $old_data[2] = $temp; みたいなことが出来るのが目標です。