PHP dirname gibt symlink-Pfad
Sagen, ich habe einen symlink von '/one/directory/'
zu '/two/directory/'
.
Wenn ich echo dirname(dirname(\__FILE__))
es gibt '/one/directory/'
.
Was ist die beste Methode, um zurück '/two/directory'
?
Beispiel:
Vhost 'example.com'
zeigt auf `/zwei/- Verzeichnis'
example.com/hello_world.php
<?php echo dirname(dirname(__FILE__)); ?>
Gibt: '/one/directory'
Erwartete Ergebnisse: '/two/directory'
InformationsquelleAutor adamstrawson | 2012-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die
readlink
Funktion? http://php.net/manual/en/function.readlink.phpKönnen Sie überprüfen, ob es ein symbolischer Link mit
is_link
: http://php.net/manual/en/function.is-link.phpFunktioniert nicht auf Windows (Windows 7)
Vielen Dank für den Kommentar @Erwinus, wird gut sein für die Menschen zu wissen! Leider weiß ich nicht über eine Windows 7-Maschine zu testen!
Update: jetzt funktioniert auf Windows -, zusammen mit link(), symlink() und linkinfo () seit PHP 5.3.0 entsprechend der Bedienungsanleitung. Ich kann bestätigen, es funktioniert auf Windows 7.
InformationsquelleAutor manavo
Verwenden readlink ("$path") zu Lesen, das Ziel der symbolischen Verknüpfung.
gerade getestet und funktioniert.
lorga - Komisch, ich werde einen spielen. Ich wundere mich, dass es es etwas mit vhosts und wie es den Umgang mit symlinks. Danke!
Egal was ich pass auf, es gibt
Warning: readlink(): Invalid argument
🙁was wollen Sie weitergeben ?
InformationsquelleAutor Mihai Iorga
Verwenden Sie die https://github.com/logical-and/symlink-detective
und
zurück
'/two/directory'
InformationsquelleAutor And
Dokumentation:
http://php.net/manual/en/function.is-link.php
http://php.net/manual/en/function.readlink.php
InformationsquelleAutor Eugene Naydenov
Vielleicht mit realpath() ? http://php.net/manual/en/function.realpath.php
Edit : readlink scheint zu sein, eine bessere Antwort 🙂
InformationsquelleAutor Fry_95