2016-01-04 13 views
5

PHPファイルがpharアーカイブの一部として実行されているかどうかを実行時に判断する方法はありますか?PHPファイルが `phar`アーカイブの一部として実行されているかどうかを確認する

つまり、ネイティブ実装は、しかし、これはユーザーが別のファイル拡張子を持っているのpharの名前を変更した場合は動作、またはファイルの拡張子を削除するのpharをシンボリックリンクしない場合があります。この

function isRunningAsPhar() 
{ 
    $first_include = get_included_files()[0]; 
    return strpos($first_include, '.phar') !== false; 
} 

のようになります。 。

答えて

2

関数Phar::running();を使用すると、実行されたpharアーカイブのパスが得られます。パスが設定されている場合はアーカイブになります。マニュアルから

https://secure.php.net/manual/en/phar.running.php

例:ここでは

<?php 
$a = Phar::running(); // $a is "phar:///path/to/my.phar" 
$b = Phar::running(false); // $b is "/path/to/my.phar" 
?> 
関連する問題