掲示板の管理画面の様な感じで、
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストデータから指定行の削除
-
csvの内容を行単位で削除したい
-
stream_get_contentsの代替関数
-
文字列(丸数字)の文字化けに...
-
csvを新ファイルに8番目で大き...
-
PHP初心者ループ
-
PHPでの単語の出現回数表示
-
C言語の配列をPush(追加)する...
-
配列をループでたくさん宣言し...
-
読み(あ行~わ行)ごとに分け...
-
String だと「 ByRef引数の型が...
-
プルダウンメニューにDBの内容...
-
array_intersectで空欄を比較し...
-
$_SESSIONに二次元配列を使える...
-
xmlからphpで出力したデータを...
-
PHPのカッコ[ ]の使い方について
-
Smartyでインクリメント
-
HTML文書内の相対URLを絶対URL...
-
行列
-
pdfファイルの複数添付 引数の型
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルの構造体の値を読み...
-
Resource id #3 と表示されま...
-
CSVファイルの最終行のデー...
-
複数行のデータのPOST処理に関して
-
ヒアドキュメントの中のfor文
-
バイナリファイルの内容を、そ...
-
CSVデータの行数カウントをした...
-
FortranのOPEN文
-
C言語でCSVファイルの行数を読...
-
stdClass Objectを連想配列のよ...
-
エラーメッセージ(無効な間接...
-
csvの内容を行単位で削除したい
-
【PHP】csvファイルへの書き出...
-
UTF-8のXMLがSJISのPHPで文字化け
-
PHP5でCSVの指定行データだけを...
-
doxygenを使用する環境について
-
PHPでCSVの一部の行を編集したい
-
PHPで、CSVファイルを、指定し...
-
PHP 別ドメインへのファイル保存法
-
curlをPHPで書く方法
おすすめ情報