C:\tmp\hoge\hoge.txt

に対して

dirname()

をかけると

C:\tmp\hoge

が帰ってくる。だができればそうではなく

C:\tmp\hoge\

のように\もしくは/まで含めたい。$_SERVER['SCRIPT_NAME']で帰ってくる値の場合
パス区切り文字は常に/だったが、__FILE__の場合パス区切り文字はUNIX系かWindows系
で/と\と違うから別々に対応しなければならない。そこが__FILE__の面倒なところかな・・・