Heim > Artikel > Backend-Entwicklung > Codezusammenfassung zur Überprüfung, ob eine Datei oder ein Verzeichnis in PHP vorhanden ist
Das Folgende ist ein einfacher Beispielcode, um zu überprüfen, ob die Datei vorhanden ist:
Kopieren Sie den Code. Der Code lautet wie folgt:
$filename = '/path/to/foo. txt';
if (file_exists($filename)) {
echo „Die Datei $filename existiert“;
echo „Die Datei $filename existiert nicht“; }
? >
Wenn die Datei vorhanden ist, lautet das angezeigte Ergebnis der Ausführung der PHP-Datei:
Die Datei C:blablaphphello.txt existiert. Das angezeigte Ergebnis der Ausführung der PHP-Datei ist:
Die Datei C:blablaphphello.txt existiert nicht
Sie können auch die Funktion file_exists verwenden, um zu testen, ob ein Verzeichnis vorhanden ist:
Code kopieren Der Code lautet wie folgt:
if (file_exists(" C:blablaphp"))
{echo "yes";}
else
{echo "no";}
Beispiel
Code kopieren Der Code lautet wie folgt:
/* *
* Funktion zur Überprüfung der Datei- oder Verzeichnisberechtigungen
*
* @access public
* @param string $file_path Dateipfad
* @param bool $rename_prv Gibt an, ob bei der Überprüfung die Ausführung der Umbenennung überprüft werden soll Änderungsberechtigungen () Funktionsberechtigungen
*
* @return int Der Wertebereich des Rückgabewerts ist {0 <= x <= 15}, und die Bedeutung jedes Werts kann aus einer Kombination von abgeleitet werden vier Binärzahlen.
* Der Rückgabewert ist in binärer Schreibweise und die vier Ziffern von hoch nach niedrig repräsentieren jeweils
* ausführbare rename()-Funktionsberechtigungen, Berechtigungen zum Anhängen von Inhalten an Dateien, Berechtigungen zum Schreiben von Dateien und Berechtigungen zum Lesen von Dateien.
*/
function file_mode_info($file_path)
{
/* Wenn er nicht existiert, es ist nicht lesbar, nicht beschreibbar und nicht veränderbar*/
if (!file_exists($file_path) )
{
return false;
}
$mark = 0;
if (strtoupper (substr(PHP_OS, 0, 3)) == 'WIN')
{
/* Testdatei*/
$test_file = $file_path . Wenn es sich um ein Verzeichnis handelt*/
if (is_dir($file_path))
{
/* Überprüfen Sie, ob das Verzeichnis lesbar ist*/
$dir = @opendir($file_path)
if ($dir === false)
{
return $mark; //if Das Öffnen des Verzeichnisses schlägt fehl und kehrt direkt zum Verzeichnis zurück, das nicht geändert, geschrieben oder gelesen werden kann
}
if (@readdir($dir) !== false)
{
$mark ^= 1; // Verzeichnis ist lesbar 001, Verzeichnis ist unlesbar 000
}
@closedir($dir);
/* Überprüfen Sie, ob das Verzeichnis beschreibbar ist*/
$fp = @fopen($test_file, 'wb' );
if ($fp === false)
{
return $mark; //Wenn die Datei im Verzeichnis nicht erstellt werden kann, wird sie als nicht beschreibbar zurückgegeben.
}
if (@fwrite($fp, 'directory access test.') !== false)
{
$mark ^= 2; //Verzeichnis kann geschrieben und gelesen werden 011, Verzeichnis Beschreibbar, aber nicht lesbar 010
}
@fclose($fp);
@unlink($test_file);
/* Überprüfen Sie, ob das Verzeichnis geändert werden kann*/
$fp = @fopen( $test_file, 'ab+');
if ($fp === false)
{
return $mark
}
if (@fwrite($fp, " modifizieren test. rn") !== false)
{
$mark ^= 4;
}
@fclose($fp);
/* Überprüfen Sie, ob die rename()-Funktion wurde im Verzeichnis Permissions*/
if (@rename($test_file, $test_file) !== false)
{
$mark ^= 8;
@unlink ausgeführt ($test_file);
}
/* Wenn es eine Datei ist*/
elseif (is_file($file_path))
{
/* Im Lesemodus öffnen*/
$fp = @fopen($ file_path, 'rb');
if ($fp)
{
$mark ^= 1; //Readable 001
}
@fclose($ fp);
/* Versuchen Sie, die Datei zu ändern*/
$fp = @fopen($file_path, 'ab+');
if ($fp && @fwrite($fp, '') ! == false)
{
$mark ^= 6; //Kann geändert, geschrieben und gelesen werden 111, kann nicht geändert, geschrieben und gelesen werden 011...
}
@fclose($ fp);
/* Überprüfen Sie, ob das Verzeichnis die Berechtigung hat, die rename()-Funktion auszuführen*/
if (@rename($test_file, $test_file) !== false)
{
$ mark ^= 8;
}
}
}
else
{
if (@is_readable($file_path))
{
$mark ^= 1;
}
if (@ is_writable($file_path))
{
$mark ^= 14;
}
return $mark; >
PHP ermittelt, ob das Verzeichnis existiert
Code kopieren Der Code lautet wie folgt:
/**************************************************** *
* XML-Datenstrom in XML-Datei schreiben
* @param $xmlData
* @return bool|string
*/
function writeXmlFile($xmlData)
{
$time = time(); //Den Zeitstempel für die Benennung der Datei abrufen
$path = dirname(__FILE__); //Den aktuellen absoluten Pfad abrufen
$path = substr_replace($path, "", stripos($path, "actionsdata")); //Ersetzen Sie den inhärenten Pfad dieser Datei durch leeres
$path .= "xmlFiles"; //Speicherverzeichnisname
/*Bestimmen Sie, ob das Zielverzeichnis existiert, erstellen Sie ein neues Verzeichnis, wenn es nicht existiert*/
if(!is_dir($path))
{
mkdir($path); //Erstellen ein neues Verzeichnis
}
/*Zeichnen Sie den vollständigen Pfad und Dateinamen auf*/
$filePathAndName = $path.$time.".xml"
/*Öffnen Sie die Datei, den Dateinamen ist
/*Write Input file stream*/
$flag = fwrite($fp, $xmlData);
if(!$flag)
{
return false; }
fclose($fp );
return $filePathAndName;