PHP: un bon moyen pour universaliser des chemins de traverse OSs slash (les directions)

Mon simple préoccupation est d'être capable de gérer les chemins d'accès à travers les logiciels libres, principalement à l'égard de l'arrière et des barres obliques pour les séparateurs de répertoire.

J'ai été en utilisant DIRECTORY_SEPARATOR, cependant:

  1. C'est long à écrire

  2. Chemins peuvent provenir de différentes sources, et pas nécessairement contrôlé par vous

Je suis actuellement à l'aide:

    function pth($path)
    {
        $runningOnWindows = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN');
        $slash = $runningOnWindows ? '\\' : '/';
        $wrongSlash = $runningOnWindows ? '/' : '\\' ;
        return (str_replace($wrongSlash, $slash, $path));
    }

Veux juste savoir qu'il n'y a rien existant dans la langue que je suis en réinventant,

Il y a déjà une fonction intégrée de PHP due pour ce faire?

Il est le DIRECTORY_SEPARATOR constante qui contient le système d'exploitation actuel du séparateur. Il vous aidera à vous parce que vous n'avez pas besoin de vérifier runningOnWindows. Vous avez juste besoin de faire de votre fonction de convertir tous les types de barres obliques sauf celle qui est définie dans DIRECTORY_SEPARATOR

OriginalL'auteur shealtiel | 2011-04-12