2016-01-04 24 views
5

C'è un modo per determinare, in fase di esecuzione, se un file PHP è in esecuzione come parte di un archivio phar?Determinare se i file PHP sono in esecuzione come parte di un archivio `phar`

cioè, un'implementazione nativa potrebbe essere simile a questo

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

Tuttavia, questo potrebbe non funzionare se l'utente ha rinominato la phar di avere un'estensione diversa, o link simbolico il phar per rimuovere l'estensione del file .

risposta

2

È possibile utilizzare la funzione Phar::running(); che fornisce un percorso per l'archivio phar eseguito. Se il percorso è impostato, è un archivio.

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

Esempio da manuale:

<?php 
$a = Phar::running(); // $a is "phar:///path/to/my.phar" 
$b = Phar::running(false); // $b is "/path/to/my.phar" 
?>