- 締切済み
重複データを削除して上書きする
data.datファイルには hoge@hoge.com, hoge1@hoge.com, hoge2@hoge.com, hoge3@hoge.com, hoge4@hoge.com, hoge5@hoge.com, hoge6@hoge.com, hoge7@hoge.com, hoge8@hoge.com, hoge9@hoge.com, hoge@hoge.com, hoge1@hoge.com, hoge2@hoge.com, hoge3@hoge.com, hoge10@hoge.com PHPファイルは↓です。 <?php //ファイルの内容を配列に格納 $lines = file( 'data.dat' ); //重複ファイル削除 $array = array_unique($lines); //配列の全要素に対して処理を行う foreach( $array as $line ){ print "$line<br>\n"; } ?> 重複したファイルを削除して表示することはできましたが、新しいデータをdata.datファイルに書き込む場合はどうしたらよいでしょうか? 重複ファイルだけdata.datファイルから削除して、削除された行を詰めて上書きしたほうがよいのでしょうか? 他に、いい方法があればアドバイス下さい。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kiyominmin
- ベストアンサー率50% (2/4)
全書き換えで、問題ないと思います。 $fp = fopen('data.dat', 'w'); //ロック処理 flock($fp,LOCK_EX); foreach($array as $v){ fputs($fp,$v); } //ロック処理終わり flock($fp,LOCK_UN); これで、いけると思いますが、どうでしょう? fclose($fp);
お礼
できました。ありがとうございます。 もう少し勉強します。