Ich würde es mit basename() machen, ehrlich gesagt. Dann noch einmal gucken, dass das Ergebnis nicht .. ist und fertig. Ob das performanter als die realpath()-Methode ist, weiß ich nicht, aber logisch und leicht nachvollziehbar isses allemal.