んー、なんかイマイチなんで出さなかったのですが、やっぱり一応答えが出る版を書いておきます。

function toruDot($path)
{
 $a=Array();
 foreach(Explode('/',$path) as $nm) {
  if($nm=='.') continue;
  if($nm=='..') {
   if(Empty($a)) break;
   Array_Pop($a);
  }
  else {
   $a[]=$nm;
  }
 }
 return Join('/',$a);
}

スッキリしないですよね?
正規表現一発ぽんとかでできるといいなぁ・・・