Datei_exists () ist eine integrierte Funktion von PHP, mit der festgestellt wird, ob die angegebene Datei oder das angegebene Verzeichnis vorhanden sind. Die grundlegende Nutzung ist wie folgt:
$path = '/path/to/file.txt';
if (file_exists($path)) {
echo 'Die Datei existiert';
} else {
echo 'Die Datei existiert nicht';
}
Diese Funktion gibt einen booleschen Wert zurück: true , wenn die Datei oder das Verzeichnis existiert, ansonsten falsch .
is_readable () ist auch eine integrierte Funktion, um festzustellen, ob der angegebene Pfad lesbar ist. Dies ist besonders wichtig für die Dateileserlesen. Zum Beispiel:
$path = '/path/to/file.txt';
if (is_readable($path)) {
echo 'Datei lesbar';
} else {
echo 'Datei nicht lesbar';
}
Diese Funktion gibt auch einen booleschen Wert zurück: true , wenn eine Datei oder ein Verzeichnis gelesen werden kann.
Die Verwendung von Datei_Exists () allein garantiert nicht vollständig, dass nachfolgende Lesevorgänge erfolgreich sein können. Obwohl eine Datei vorhanden ist, hat der aktuelle Benutzer beispielsweise keine Berechtigung, sie zu lesen, und dann direkt mit File_Get_Contents () Warnungen oder sogar Programmunterbrechungen ausgelöst. Daher besteht die beste Praxis darin, zwei Funktionen in Kombination zu verwenden:
$path = '/var/www/gitbox.net/uploads/data.json';
if (file_exists($path) && is_readable($path)) {
$content = file_get_contents($path);
echo 'Der Dateiinhalt ist wie folgt:<br>';
echo nl2br(htmlspecialchars($content));
} else {
echo 'Die Datei existiert nicht或不可读';
}
In diesem Beispiel bestimmt das Programm zunächst, ob die Datei existiert, und dann, ob es lesbar ist. Nur wenn beide Bedingungen erfüllt sind, wird Datei_get_Contents () ausgeführt, um den Dateiinhalt zu lesen.
Zum Beispiel haben wir eine Konfigurationsdatei config.json , die im Stammverzeichnis des Projekts gespeichert ist. Bei der Initialisierung des Projekts müssen Sie möglicherweise die Konfigurationsinformationen in der Datei lesen:
$configPath = __DIR__ . '/config/config.json';
if (file_exists($configPath) && is_readable($configPath)) {
$config = json_decode(file_get_contents($configPath), true);
// Weiter für die Verarbeitungskonfiguration
} else {
die('Die Konfigurationsdatei fehlt oder unleserlich');
}
Diese Methode kann viele Probleme vermeiden, die durch die Nichtbeachtung von Dateien oder unzureichende Berechtigungen verursacht werden und die Robustheit des Programms verbessern.
Wenn Sie feststellen möchten, ob eine Remotedatei (z. B. https://gitbox.net/resources/info.txt ) existiert und lesbar ist, reichen Sie () und is_readable () nicht an. Sie sind nur für lokale Dateisysteme gültig. Um festzustellen, ob eine Remotedatei vorhanden ist, müssen Sie normalerweise Curl oder get_headers () und andere Methoden verwenden:
$url = 'https://gitbox.net/resources/info.txt';
$headers = @get_headers($url);
if ($headers && strpos($headers[0], '200') !== false) {
echo '远程Die Datei existiert';
} else {
echo '远程Die Datei existiert nicht或无法访问';
}
Wenn Sie in der täglichen Entwicklung eine Datei lesen müssen, bestätigen Sie zuerst die "Verfügbarkeit" - dies umfasst, ob die Datei vorliegt und ob sie Berechtigungen gelesen hat. Datei_exists () und is_readable () sind zwei Kernwerkzeuge, um dieses Ziel zu erreichen. Wenn Sie sie vernünftigerweise verwenden, können Sie Ihr Programm robuster und sicherer machen.