while以前の行に変なのがあるんじゃないかな?

while行から上に向かって
exit;
を入れてみてデバグしてみるとか。

あと~の文字コードとかとか。