Давайте представим, что у меня есть следующее
class.wrapper.php
// loop through events/ directory ($eventFile = filename of parsed file)
include $eventFile;
myevent.php
echo __FILE__;
myotherevent.php
echo __FILE__;
Оба эха возвращают одно и то же: class.wrapper.php, Есть ли способ получить настоящее имя файла? не тот, который включал код?
class.wrapper является частью зашифрованного API, который позволяет пользователю определять пользовательские файлы php в заданном каталоге для вызова пользовательского кода, когда данное событие запускается в основном приложении, поэтому я не могу редактировать основной класс, я должен делать это только путем редактирования файлы «событий»
Попробуйте функцию ниже
function GetInclude($file, $params = array())
{
extract($params);
include $file;
}
myevent.php
<?php GetInclude('class.wrapper.php', array('includerFile' => __FILE__)); ?>
myotherevent.php
<?php GetInclude('class.wrapper.php', array('includerFile' => __FILE__)); ?>
class.wrapper.php
echo $includerFile;
Если вы хотите получить настоящее имя, которое для вашего примера является полным путем для доступа к этому файлу, используйте функцию realpath("yourfile.extension")
,
Я приведу вам этот короткий пример:
Допустим, у меня есть файл с именем index.php. Я хочу отобразить его полный путь. Вот код для этого:
<?php
echo realpath("index.php");
?>
В моем примере я сохранил свой файл в C: \ xampp \ htdocs \ test \ index.php. Результатом будет отображение этого точного пути.
Надеюсь, поможет.