Heim Backend-Entwicklung PHP-Tutorial 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

Jun 24, 2023 am 08:58 AM
php 正则表达式 文件路径验证

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";
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

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";
Nach dem Login kopieren

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

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

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

  • ^[^-:*?"<>|/]+:表示不包含控制符、分隔符和特殊字符的文件名。
  • $
  • (/[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;
}
Nach dem Login kopieren
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: 🎜🎜🎜^[^- :*?"<>|/]+: 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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP arbeitet mit Datenbank CakePHP arbeitet mit Datenbank Sep 10, 2024 pm 05:25 PM

Das Arbeiten mit der Datenbank in CakePHP ist sehr einfach. In diesem Kapitel werden wir die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) verstehen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

CakePHP-Protokollierung CakePHP-Protokollierung Sep 10, 2024 pm 05:26 PM

Die Anmeldung bei CakePHP ist eine sehr einfache Aufgabe. Sie müssen nur eine Funktion verwenden. Sie können Fehler, Ausnahmen, Benutzeraktivitäten und von Benutzern durchgeführte Aktionen für jeden Hintergrundprozess wie Cronjob protokollieren. Das Protokollieren von Daten in CakePHP ist einfach. Die Funktion log() wird bereitgestellt

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

See all articles