Setoです。
詳細みてませんが一点
> //ファイル名に「.」があればファイル、なければディレクトリ名として判断
> if(strpos($files[$i], '.') == 0 ){
今環境がないので未検証ですけど
Windows環境でも '.' とか '..'
って帰ってきませんか?
ディレクトリに中にディレクトリが存在した場合とか
再帰的にプログラミング(クラスとか作ると簡単)しないと
サブディレクトリの削除の順番とか
かえって難しくなるんじゃないかなと思います。
または強制的に配下も含めて削除するコマンドを
execで発行するとかも簡単だと思います。
Junya Seto