Auf dem Stummel PHAR, können Sie die __DIR__
Magie Konstante, um den Ordner der PHAR-Datei zu erhalten.
, die mit im Auge, können Sie einfach
is_file(__DIR__ . DIRECTORY_SEPARATOR . $path);
verwenden außerhalb der PHAR für eine Datei Existenz zu überprüfen.
Sie können dies NUR aus dem Stub tun, und NUR, wenn es sich um einen benutzerdefinierten Stub handelt, im Gegensatz zu einem, der von Phar :: setDefaultStub() generiert wurde. Wenn Sie weiter unten nach Dateien suchen müssen, müssen Sie den Wert dieser Konstante irgendwie verfügbar machen, wie eine globale Variable, eine benutzerdefinierte nicht-magische Konstante oder eine statische Eigenschaft oder etwas, mit der sich andere Dateien dann beraten.
EDIT: Eigentlich können Sie auch dirname(Phar::running(false))
verwenden, um den PHAR-Ordner von irgendwo im PHAR zu bekommen. Diese Funktion gibt eine leere Zeichenfolge zurück, wenn Sie sich nicht in einem PHAR befinden. Ob Ihre Anwendung als PHAR oder direkt ausgeführt wird, sollte also gut funktionieren, z.
$pharFile = Phar::running(false);
is_file(('' === $pharFile ? '' : dirname($pharFile) . DIRECTORY_SEPARATOR) . $path)
Welche Version von PHP? URL Wrapper können nur auf verions => PHP 5.0.0 –
Haben Sie die folgende Empfehlung aus der Dokumentation für ['file_exists()'] (http://php.net/file_exists) versucht: "Hinweis: Die Ergebnisse dieser Funktion werden im Cache gespeichert. Weitere Informationen finden Sie unter clearstatcache(). "? –
ja, ich habe versucht den clearstatcache() - aber der Cache würde es als "existiert" speichern und mein Problem ist, dass es nicht finden - also das ist definitiv nicht der Schuldige. – Lan