掲示板の管理画面の様な感じで、
PHPでCSVファイル内の一行を編集するフォームを作りたいと思っています。
フォームには新規投稿と、編集用のボタンがあり、
編集用で送られてきたものを受け取るPHPプログラムは以下の通りです。
if($mode == "edit"){
foreach($csv as $val){
list($li_id, $li_date, $li_comment) = split("\t",$val);
$fp = fopen(csv' , 'w');
if($li_id == $info_no){
$csv[$li_id] = "$li_id\t$date_y/$date_m/$date_d\t$comment\t\n";
}else{
$csv[$li_id] = "$li_id\t$li_date\t$li_comment\t\n";
}
}
$fp = fopen('csv' , 'w');
fputs ($fp, $csv[$li_id]);
for ($i=0; $i<1000; $i++){
fputs ( $fp,$csv[$i]);
}
fclose($fp);
}
としたのですが、うまくいきませんでした。
なぜか、編集した文章と、最後に新規で追記した文章が追加されてしまいます・・・・。
「あいうえお」を新規で追記した後、
1. あいうえお
2. かきくけこ
3. さしすせそ
4. たちつてと
の2を編集すると
1.あいうえお
1.あいうえお
2.かきくけこ(編集した)
3.さしすせそ
4.たちつてと
となってしまいます。。。。
新規で追記されたものがない場合は
空行が追記されてしまいます。
いろいろ試行錯誤したのですが、さっぱりわかりません。
教えて下さい。
No.1ベストアンサー
- 回答日時:
こんにちわ。
私の場合ですが・・・
CSVでの編集だと、一度全てのデータを配列に格納し、CSVを空にします。
配列から該当するデータの変更を行い
CSVに全て書き込む手順で行っています。
ある特定の行のみ書き換えるってことはできなかったと思います。
参考ソースがなくてすみません・・・。
蛇足ですが、
CSVで何かをするときはファイルにロックを欠けるようにしたほうがいいですよ。
タイミングによっては、変更されてないなんてこともあるかもしれませんので・・・
ありがとうございます。
一度すべてを空にして、、、、、
というのはわかるのですが、
自分なりにソースを記入してみたのが、上記のソースなんです。。。。
それでもうまくいかないので、
詳しく教えていただけたらと思ったのですが、、、。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- MySQL UPDATE my_items SET item_name '赤い,甘い,ケーキ' WHERE id 1 2023/01/03 09:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPとHTML+Xamppの掲示板で画像...
-
SFTPなどは使わないホームペー...
-
php 確認表示画面で値をSESSION...
-
ワードプレスサイト PHP8.0.25...
-
アップロード画像数でCSSを分け...
-
重複を防ぐ記述について教えて...
-
awsにApacheとPHPを入れて、何...
-
htmlのエラーについて(デバッグ)
-
アマゾンのような評価の星を選...
-
phpでcookieがうまく保存されない
-
アップロードファイルの数に応...
-
ファイルアップロードの上限を...
-
PHPのセッション有効期限について
-
php 完了画面の送信メールのコ...
-
phpのメールフォームの完了画面...
-
imageフォルダに、画像をリサイ...
-
PHPでユーザー情報を入力して簡...
-
substrの使い方について教えて...
-
PHPを使って、別サイトの一部を...
-
PHP echo バックスラッシュの使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルの構造体の値を読み...
-
CSVファイルの最終行のデー...
-
stdClass Objectを連想配列のよ...
-
複数行のデータのPOST処理に関して
-
ヒアドキュメントの中のfor文
-
Resource id #3 と表示されま...
-
エラーメッセージ(無効な間接...
-
自動で番号を振りたい
-
PHPでCSVの一部の行を編集したい
-
C言語でCSVファイルの行数を読...
-
バイナリファイルの内容を、そ...
-
CSVデータの行数カウントをした...
-
ログファイルの古い日付の行を...
-
While文を使って配列の中身を全...
-
csvの内容を行単位で削除したい
-
多次元配列の一次元目の最大値...
-
pythonのファイルの並びでの読...
-
配列同士の足し算のループ処理
-
【PHP】csvファイルへの書き出...
-
配列をファイルに書き込む方法
おすすめ情報