こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

textファイルについて

あるディレクトリーに
test.txt
aaa.txt
があるのですが、
二つのテキストを開いて
もし
text.txtの3行目に
http://www.goo.ne.jp/
があり
aaa.txtの10行目にも
http://www.goo.ne.jp/
があるとすれば
aaa.txtの10行目を消したいのですが、
そんな事って可能ですか??

色々考えたのですが、aaa.txtの10行目を消す時に
10行目を空にすると言う指定が出来なくて困ってます。
どうしてもaaa.txtの削除が出来ません。

参考までにスクリプトを載せておきます


<?php

$file_name = array("aaa.txt", "test.txt");

$list = fopen($file_name[0], "a+");
$delete_list = fopen($file_name[1], "r");

$listfile = file($file_name[0]);
$listmax = count($listfile);

$listfile = file($file_name[1]);
$delete_listmax = count($listfile);

if ($delete_listmax > 0){
for ($delete_line = 1; !feof($delete_list); $delete_line++){
$delete_lines = fgets($delete_list);
$delete_lines = trim($delete_lines);
if ($delete_lines){

if (is_file($file_name[0])){
for ($line = 1; !feof($list); $line++){
$lines = fgets($list);
$lines = trim($lines);
if ($lines){

if ($delete_lines == $lines){
//ここの部分がわからないです
fputs($list, "あああ");
echo "O,K\n";
}

}
}
}
}
}
}

fclose($delete_list);
fclose($list);

echo "\n終了\n";

?>

詳しい方がいましたら宜しくお願いします

投稿日時 - 2009-10-29 17:57:06

QNo.5406475

困ってます

質問者が選んだベストアンサー

削除したい行を省いたデータをファイルに書き込むように処理すればよいのでは。例示されたコードを見ると、ファイルの内容を一旦配列に格納していることからファイルサイズが極端に大きいわけでもなさそうですので処理として問題ないかと思います。

投稿日時 - 2009-10-29 22:43:49

補足

UmJammerさん回答有難う御座います

aaa.txtの削除したい行以外をaaa.txtに上書きすると言う事ですか??
そんな事ができるのですか??

投稿日時 - 2009-10-30 14:40:26

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

ANo.1です。

>aaa.txtの削除したい行以外をaaa.txtに上書きすると言う事ですか??
その通りです。

>そんな事ができるのですか??
試してみればわかるかと思いますが可能です。

投稿日時 - 2009-10-30 15:14:12