как получить реальный каталог файла .phar внутри кода файла phar?

Я пытаюсь создать исполняемый файл php (файл phar) для генерации некоторых файлов, и я хотел бы знать, как получить реальный путь к файлу phar (в коде файла phar).

Я хочу создать папку на том же уровне файла phar и создать новые файлы там, но realpath(__DIR__.'/../') не похоже на работу.

Спасибо

5

Решение

Как показано в https://stackoverflow.com/a/28775172/282601 __FILE__ Константа имеет полный путь со схемой:

phar:///home/cweiske/Dev/test/phar/test.phar/path/to/foo.php

__DIR__ похож:

phar:///home/cweiske/Dev/test/phar/test.phar/path/to

Так что при звонке realpath(__DIR__) у тебя еще есть phar:// префикс, который мешает вам загрузить файл.

Вы должны удалить phar:// схема, а также путь к файлу внутри .phar чтобы получить местоположение фар с __DIR__,


Гораздо проще Phar::running(false), который просто возвращает путь:

/home/cweiske/Dev/test/phar/test.phar
7

Другие решения

ответ

 $string = 'phar://E:/php/www/my.phar';
$string = pathinfo($string);
$_dir_ = parse_url($string['dirname']);
echo $_dir_['host'].':/'.$_dir_['path'];

результат

E:/php/www

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector