16

phpfopenの相対パスと絶対パスに問題があります。私は次のディレクトリを持っています:

project:
    scripts:
        myscript.php
    logs:
        mylog.log

mylog.logから開きたいのですがmyscript.php、パスの指定方法がわかりません。私は試した

fopen('../logs/mylog.log', "a")

しかし、それは機能しません。ありがとう。

LE:答えてくれてありがとう。

4

3 に答える 3

37

PHPには、役立つ可能性のあるグローバル定数がいくつかあります。つまり、__DIR__現在のファイルのディレクトリを提供します('.'実行中のルートスクリプトのディレクトリを提供するだけです)。

だからあなたが欲しいのは:

fopen(__DIR__ . '/../logs/mylog.log', "a")
于 2013-03-16T15:21:28.780 に答える
8

$_SERVER['DOCUMENT_ROOT']仮想ホストのドキュメントルートを与えるを使用できます。

例えば:$_SERVER['DOCUMENT_ROOT']."/log/mylog.log"

于 2013-03-16T15:20:40.563 に答える
8

これは機能するはずです:

fopen(__DIR__ . '/../logs/mylog.log', "a");

またはPHP<5.3の場合:

fopen(dirname(__FILE__) . '/../logs/mylog.log', "a");
于 2013-03-16T15:20:56.103 に答える