Zum Inhalt springen

filter_input_array()

Einführung

PHP bietet eine Reihe integrierter Funktionen zur Verarbeitung von Benutzereingaben, und eine dieser Funktionen ist filter_input_array(). Diese Funktion dient dazu, ein gesamtes Array von Eingabedaten zu filtern und zu bereinigen. In diesem Artikel erhalten Sie eine detaillierte Anleitung zur Verwendung von filter_input_array() in PHP, einschließlich Syntax und Vorteilen.

Syntax

Die Syntax für filter_input_array() lautet wie folgt:

Die PHP-Syntax von filter_input_array()

php
filter_input_array ( int $type , mixed $definition [, bool $add_empty = true ] ) : mixed

Die Funktion erwartet drei Parameter – den Eingabetyp (z. B. INPUT_GET oder INPUT_POST), die Definition der auf die Eingabedaten anzuwendenden Filter und ein optionales boolesches Flag, das angibt, ob leere Eingabewerte zum zurückgegebenen Array hinzugefügt werden sollen. Wenn $add_empty auf true gesetzt ist (Standardwert), werden Schlüssel mit leeren Werten in das Ergebnis aufgenommen. Setzen Sie es auf false, um sie auszuschließen. Beispiel: filter_input_array(INPUT_GET, $filters, false) gibt nur Schlüssel mit nicht-leeren Werten zurück. Die Funktion gibt bei Erfolg die gefilterten Eingabedaten zurück, andernfalls false.

Anwendung

Die Funktion filter_input_array() wird verwendet, um ein gesamtes Array von Eingabedaten, z. B. über ein Formular übermittelte Daten, zu filtern und zu bereinigen. Der folgende Code verwendet filter_input_array(), um Benutzereingaben aus einem Formular zu bereinigen:

Beispiel für PHP filter_input_array()

php
<?php

$filters = [
    'name' => FILTER_SANITIZE_FULL_SPECIAL_CHARS,
    'age' => FILTER_VALIDATE_INT,
    'email' => FILTER_VALIDATE_EMAIL,
];

$data = filter_input_array(INPUT_POST, $filters);

if ($data === false) {
    // Handle error: input data could not be retrieved
    exit('Input retrieval failed.');
}

// Access or iterate over the sanitized data
foreach ($data as $key => $value) {
    echo $key . ': ' . $value . PHP_EOL;
}

In diesem Beispiel wird das Array $filters verwendet, um die auf die Eingabedaten anzuwendenden Filter zu definieren. Anschließend wird die Funktion filter_input_array() in Kombination mit der Konstante INPUT_POST verwendet, um die Eingabedaten abzurufen und die Filter anzuwenden. Die daraus resultierenden bereinigten Daten werden im Array $data gespeichert.

Hinweis zur PHP-Version-Kompatibilität: FILTER_SANITIZE_STRING wurde in PHP 8.1 als veraltet markiert und in PHP 8.2 entfernt. Verwenden Sie in modernen PHP-Versionen stets FILTER_SANITIZE_FULL_SPECIAL_CHARS zur Bereinigung von Zeichenketten.

Vorteile

Die Verwendung von filter_input_array() kann dazu beitragen, die Sicherheit und Zuverlässigkeit Ihrer PHP-Anwendung zu verbessern, indem ein gesamtes Array von Eingabedaten auf einmal gefiltert und bereinigt wird. Durch die Validierung der Eingabedaten vor der Verarbeitung stellen Sie sicher, dass Ihre Anwendung nur gültige Daten akzeptiert und potenzielle Sicherheitslücken vermieden werden.

Darüber hinaus kann die Verwendung von Filterfunktionen die allgemeine Codequalität verbessern, indem er lesbarer und wartbarer wird. Durch die Trennung der Validierungslogik von der Verarbeitungslogik können Sie Ihren Code modularer gestalten und die Fehlersuche erleichtern.

Fazit

Zusammenfassend lässt sich sagen, dass die Funktion filter_input_array() ein nützliches Werkzeug zum Filtern und Bereinigen eines gesamten Arrays von Eingabedaten in PHP-Anwendungen ist. Durch die Kombination mit anderen Filterfunktionen können Sie die Sicherheit und Qualität Ihres Codes verbessern und gleichzeitig die Lesbarkeit und Wartbarkeit erhöhen.

Praxis

Welchen Zweck hat die Funktion filter_input_array in PHP laut den auf der w3docs-Website bereitgestellten Informationen?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.