dポイントプレゼントキャンペーン実施中!

fread関数を使用し、下記のように
同じファイルに上書きしているのですが。。。。
freadで取得したデータの全角コロンを半角コロンに置き換える。
その後、全角空白を半角空白におきかえる。
そのおきかえたデータを同じファイルの上書きする。

どうもコロン(:)のところがうまく書き変えられていません。。。。
おきかえた後に、print文で出力すると置き換えられているのですが、、、


この現象がわかる方教えていただけませんか??

$body=fread(fopen($fileName, "r"),filesize($fileName));
$txt=str_replace(":", ":",$body);
$txt=mb_convert_kana($txt, "s","SJIS");

$fp = fopen($fileName, "w");
chmod($fileName,0777);
flock($fp, LOCK_EX);
fputs ($fp, $txt);
flock($fp, LOCK_UN);
fclose($fp);

A 回答 (2件)

手持ちの環境で再現出来なかったので外しているかもしれませんが・・・。


fputs()で上書きする前にftruncate()でファイルを丸めてみてはどうでしょうか?
    • good
    • 0
この回答へのお礼

やってみます。
ありがとうございます。

お礼日時:2005/02/24 19:46

あまり自信はないですが


freadした時の"r"でのfopenを"w"でfopenする前にfcloseしないといけないのではないかと思います。
    • good
    • 0
この回答へのお礼

クローズし忘れていました。
ひとまず、ファイルをクローズしたのですが、現象はかわりませんでした。。。

お礼日時:2005/02/24 19:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!