>正しくは $fp = @fopen($file,"w") or die("error");
>こうすれば = が処理される前に $fp が評価されるはず。

ダメじゃん・・・。