簡體   English   中英

遇到困難

[英]Having trouble getting paths

我正在嘗試獲取包含PHP腳本的目錄的路徑。 讓我們將其命名為script.php 它還包含包含的log.php

script.php:

include_once __DIR__.'/../lib/log.php';
func();

log.php:

function func() {
   file_put_contents(__DIR__.'/log', 'Log file successfully created');
}

我執行script.php,希望日志文件與script.php一起出現,但不會發生。 相反,將在lib目錄中創建日志文件以及log.php文件。
我在這里看到的唯一解決方法是通過函數將dir路徑傳遞給log.php作為這樣的參數:

script.php:

include_once __DIR__.'/../lib/log.php';
func(__DIR__);

log.php:

function func($arg) {
   file_put_contents($arg.'/log', 'Log file successfully created');
}

實際上有可能通過log.php來獲取script.php的路徑而不傳遞任何參數嗎?
我只想包括該腳本,調用一個函數並與包含include的腳本一起創建新文件。

不可以。PHP除了與當前正在其中執行的文件有關的元數據外,不提供任何其他元數據。

要使文件路徑更易於處理, 可以做的是在配置或頭文件中定義一個常量,該常量定義了到應用程序根目錄的絕對路徑。 例如:

define('APPROOT', __DIR__);

要么:

define('APPROOT', __DIR__ . '/../myapp');

然后,您可以在應用中定義路徑,而無需嘗試依賴腳本的運行位置,例如:

$log_file = APPROOT . '/log/foo.log';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM