Heim  >  Artikel  >  Backend-Entwicklung  >  Codezusammenfassung zur Überprüfung, ob eine Datei oder ein Verzeichnis in PHP vorhanden ist

Codezusammenfassung zur Überprüfung, ob eine Datei oder ein Verzeichnis in PHP vorhanden ist

高洛峰
高洛峰Original
2016-12-01 13:13:411033Durchsuche

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;

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn