9

'/one/directory/'からへのシンボリックリンクがあるとし'/two/directory/'ます。

Iecho dirname(dirname(\__FILE__))の場合は、 を返します'/one/directory/'

返品する最良の方法は何'/two/directory'ですか?

使用例:

'example.com'「/two/directory」を指している仮想ホスト

example.com/hello_world.php

<?php 
    echo dirname(dirname(__FILE__));
?>

戻り値: '/one/directory'

予想された結果: '/two/directory'

4

5 に答える 5

9

機能を使用しreadlinkますか?http://php.net/manual/en/function.readlink.php

それがシンボリックリンクであるかどうかを確認できますis_link: http://php.net/manual/en/function.is-link.php

if (is_link($link)) {
    echo(readlink($link));
}
于 2012-09-25T09:47:58.263 に答える
7

シンボリック リンクのターゲットを読み取るには、readlink($path)を使用します。

<?php 
    echo readlink(dirname(__FILE__));
?>
于 2012-09-25T09:46:25.517 に答える
3
<?php

function getRealFile($path) {
    return is_link($path) ? readlink($path) : $path;
}

$path = getRealFile(dirname(__FILE__));

ドキュメンテーション:

http://php.net/manual/en/function.is-link.php
http://php.net/manual/en/function.readlink.php

于 2012-09-25T09:49:46.590 に答える
2

「/two/directory」を返す最良の方法は何ですか?

https://github.com/logical-and/symlink-detective と_

<?php 

echo SymlinkDetective::detectPath(dirname(dirname(__FILE__)));

戻ります'/two/directory'

于 2016-11-05T08:49:09.500 に答える
0

多分 realpath() で?http://php.net/manual/en/function.realpath.php

編集:readlinkはより良い答えのようです:)

于 2012-09-25T09:47:21.240 に答える