PHP: ein guter Weg, um zu verallgemeinern Pfade in OSs (Schrägstrich-Richtungen)
Mein einfaches Anliegen ist, in der Lage zu handhaben, die Pfade in OSs, vor allem bezogen auf die zurück-und vorwärts-Schrägstriche für Verzeichnis-Separatoren.
War ich mit DIRECTORY_SEPARATOR
jedoch:
-
Ist es lange zu schreiben
-
Pfade, die aus verschiedenen Quellen stammen können, die nicht unbedingt von Ihnen kontrolliert
Ich bin derzeit mit:
function pth($path)
{
$runningOnWindows = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN');
$slash = $runningOnWindows ? '\\' : '/';
$wrongSlash = $runningOnWindows ? '/' : '\\' ;
return (str_replace($wrongSlash, $slash, $path));
}
Möchte nur wissen, dass es nichts gibt, bestehende in der Sprache, ich bin neu zu erfinden,
Gibt es bereits eine eingebaute PHP-functon, dies zu tun?
- Es ist die
DIRECTORY_SEPARATOR
Konstante, hält die aktuelle OS-separator. Es wird Ihnen helfen, weil Sie nicht brauchen, um zu überprüfenrunningOnWindows
. Sie nur brauchen, um Ihre Funktion wandeln Sie alle Arten von Schrägstrichen, außer dem angegebenen inDIRECTORY_SEPARATOR
InformationsquelleAutor shealtiel | 2011-04-12
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Faulheit ist nie ein Grund für alles
oder
Diese wird in einem Schritt ersetzen Sie "richtig" mit sich selbst, aber das nicht macht keinen Unterschied.
Wenn Sie wissen, für sicher, dass ein Pfad vorhanden ist, können Sie realpath()
Aber, dass ist gar nicht erforderlich, denn jedes OS versteht der Schrägstrich
/
als einen gültigen Verzeichnis-Trennzeichen (auch windows).'C:\Foo\Bar/baz/what.php'
ist völlig legal Pfad in PHP.exec()
hat nicht viel mit php zu tun./
immer, weil es akzeptiert wird von jedem OS. (Es gibt eine Ausnahme; etwas XMLish ... )Fehlt der
DIRECTORY_SEPARATOR
vordefinierte Konstante.Wenn du gehst zu gehen diese Wege, um die standard-PHP-Funktionen, die Sie tatsächlich brauchen nicht zu beheben Pfade, so weit ich erzählen kann. Grundlegende Funktionen wie
file_get_contents
oderfopen
perfekt funktionieren gut mit jeder Art von Weg, die Sie auf Sie werfen.dieser wird auch dafür gibt es einen abschließenden Schrägstrich
/
beim Zugriff auf ein Verzeichnis, aber ich bin mir nicht sicher, Windows möchte, dass überhaupt.