Heim  >  Artikel  >  Backend-Entwicklung  >  Regulärer PHP-Ausdruck zur Überprüfung der Rechtmäßigkeit von Dateipfaden und Dateinamen

Regulärer PHP-Ausdruck zur Überprüfung der Rechtmäßigkeit von Dateipfaden und Dateinamen

王林
王林Original
2023-06-24 08:58:362748Durchsuche

Bei der Entwicklung von Webprojekten müssen wir häufig hochgeladene Dateien verarbeiten. Beim Hochladen von Dateien muss die Rechtmäßigkeit des Dateipfads und Dateinamens überprüft werden. In PHP können Sie reguläre Ausdrücke verwenden, um den Dateipfad und Dateinamen zu überprüfen. In diesem Artikel wird erläutert, wie Sie reguläre Ausdrücke verwenden, um die Rechtmäßigkeit des Dateipfads und Dateinamens zu überprüfen.

1. Überprüfung der Dateipfadlegalität

Der Dateipfad bezieht sich auf die Pfadbeschreibung der Datei im Computerdateisystem. Es kann ein absoluter Pfad oder ein relativer Pfad sein. In PHP kann ein typischer Dateipfad wie folgt aussehen:

$filePath = "/home/user/project/files/test.txt";

Der Hauptzweck der Überprüfung der Dateipfadlegalität besteht darin, sicherzustellen, dass das Format des Dateipfads korrekt ist und keine illegalen Zeichen vorhanden sind. So verwenden Sie reguläre Ausdrücke zur Überprüfung von Dateipfaden:

function validateFilePath($filePath) {
    $pattern = '/^([a-zA-Z]:)?(/[a-zA-Z0-9]+)+/?$/';
    return preg_match($pattern, $filePath);
}

Die obige Funktion akzeptiert einen Dateipfad als Parameter und verwendet reguläre Ausdrücke zur Überprüfung. Die Bedeutung des regulären Ausdrucks ist wie folgt:

  • ^([a-zA-Z]:)?: stellt eine optionale Laufwerkskennung dar, z. B. C:, D: usw. ^([a-zA-Z]:)?:表示可选的驱动器标识符,例如C:、D:等。
  • (/[a-zA-Z0-9]+)+:表示目录名称,其中“/”为目录分隔符。
  • /?$:表示可选的目录分隔符“/”。

使用上述函数可以对文件路径进行验证,并且返回一个布尔值。如果文件路径合法,则返回true;否则返回false。

二、文件名合法性验证

文件名是指文件在计算机文件系统中的名称,除了特殊字符,文件名可以包含任何字符。在PHP中,一个典型的文件名可以是这样的:

$fileName = "test_file.jpg";

文件名合法性验证的主要目的是防止恶意文件名攻击,保护项目安全。下面是使用正则表达式验证文件名的方法:

function validateFileName($fileName) {
    $pattern = '/^[^-\:*?"<>|/]+$/';
    return preg_match($pattern, $fileName);
}

上述函数接受一个文件名为参数,并且使用正则表达式进行验证。正则表达式的含义如下:

  • ^[^-:*?"a8093152e673feb7aba1828c43532094|/]+:表示不包含控制符、分隔符和特殊字符的文件名。
  • $
  • (/[a-zA-Z0-9]+)+: Gibt den Verzeichnisnamen an, wobei „/“ das Verzeichnistrennzeichen ist.

/?$: Stellt das optionale Verzeichnistrennzeichen „/“ dar.

Verwenden Sie die obige Funktion, um den Dateipfad zu überprüfen und einen booleschen Wert zurückzugeben. Wenn der Dateipfad zulässig ist, wird „true“ zurückgegeben, andernfalls „false“.

2. Überprüfung der Rechtmäßigkeit des Dateinamens

Der Dateiname bezieht sich auf den Namen der Datei im Dateisystem des Computers. Mit Ausnahme von Sonderzeichen kann der Dateiname beliebige Zeichen enthalten. In PHP kann ein typischer Dateiname wie folgt aussehen:

function validateFilePathAndName($filePath, $fileName) {
    $pattern = '/^([a-zA-Z]:)?(/[a-zA-Z0-9]+)+/?$/';
    if (!preg_match($pattern, $filePath)) {
        // 文件路径非法
        return false;
    }
    $pattern = '/^[^-\:*?"<>|/]+$/';
    if (!preg_match($pattern, $fileName)) {
        // 文件名非法
        return false;
    }
    return true;
}

Der Hauptzweck der Überprüfung der Rechtmäßigkeit von Dateinamen besteht darin, bösartige Angriffe auf Dateinamen zu verhindern und die Projektsicherheit zu schützen. So verwenden Sie reguläre Ausdrücke zur Überprüfung von Dateinamen: 🎜rrreee🎜Die obige Funktion akzeptiert einen Dateinamenparameter und verwendet reguläre Ausdrücke zur Überprüfung. Die Bedeutung des regulären Ausdrucks ist wie folgt: 🎜🎜🎜^[^- :*?"a8093152e673feb7aba1828c43532094|/]+: Gibt einen Dateinamen an, der keine Steuerzeichen, Trennzeichen usw. enthält Sonderzeichen. 🎜🎜$: Gibt das Endzeichen an. 🎜🎜🎜Verwenden Sie die obige Funktion, um den Dateinamen zu überprüfen und einen booleschen Wert zurückzugeben, andernfalls geben Sie false zurück Überprüfung🎜🎜In der tatsächlichen Entwicklung müssen wir normalerweise Dateipfade und Dateinamen umfassend überprüfen. Die folgende Funktion verwendet reguläre Ausdrücke, um Dateipfade und Dateinamen umfassend zu überprüfen: 🎜rrreee🎜Die obige Funktion akzeptiert Dateipfade und Dateinamen Als Parameter wird zunächst ein regulärer Ausdruck verwendet, um den Dateipfad zu überprüfen. Wenn der Dateiname ungültig ist, wird „false“ zurückgegeben. Es wird „false“ zurückgegeben, was den Dateipfad und die Dateinamen angibt. Zusammenfassend lässt sich sagen, dass die Verwendung regulärer Ausdrücke zur Überprüfung der Rechtmäßigkeit von Dateipfaden und Dateinamen eine wichtige Sicherheitsmaßnahme ist In der tatsächlichen Entwicklung müssen wir die grammatikalischen Regeln regulärer Ausdrücke beherrschen und gut darin sein, reguläre Ausdrücke zu verwenden.

Das obige ist der detaillierte Inhalt vonRegulärer PHP-Ausdruck zur Überprüfung der Rechtmäßigkeit von Dateipfaden und Dateinamen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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