Aktueller Standort: Startseite> Neueste Artikel> Was ist der Unterschied zwischen filter_var_array und filter_input_array? Welches ist besser für Ihr Projekt?

Was ist der Unterschied zwischen filter_var_array und filter_input_array? Welches ist besser für Ihr Projekt?

gitbox 2025-09-09

Was ist der Unterschied zwischen filter_var_array und filter_input_array? Welches ist besser für Ihr Projekt? ]

In PHP ist die Datenfilterung ein wichtiger Schritt, um die Sicherheit der Anwendungen zu gewährleisten und böswillige Angriffe zu verhindern. filter_var_array und filter_input_array sind zwei häufig verwendete Funktionen, die zum Filtern und Überprüfen der Eingabedaten verwendet werden, unterscheiden sich jedoch in einigen Details. Dieser Artikel wird diese beiden Funktionen vergleichen, um Entwicklern zu helfen, ihre Unterschiede zu verstehen und entsprechende Funktionen entsprechend den Projektanforderungen auszuwählen.

1. Überblick über die Funktion filter_var_array

filter_var_array ist eine Array -Version der Funktion filter_var , mit der Entwickler mehrere Variablen gleichzeitig filtern können. Es empfängt zwei Parameter:

  • Der erste Parameter ist ein Array, das die zu filternen Daten enthält.

  • Der zweite Parameter ist ein Array, das die Filterregeln definiert und über die Konstante filter_* festgelegt werden kann.

Beispiel:

 <span><span><span class="hljs-variable">$input_data</span></span><span> = [
    </span><span><span class="hljs-string">'email'</span></span><span> =&gt; </span><span><span class="hljs-string">'[email protected]'</span></span><span>,
    </span><span><span class="hljs-string">'age'</span></span><span> =&gt; </span><span><span class="hljs-string">'25'</span></span><span>
];

</span><span><span class="hljs-variable">$filters</span></span><span> = [
    </span><span><span class="hljs-string">'email'</span></span><span> =&gt; FILTER_VALIDATE_EMAIL,
    </span><span><span class="hljs-string">'age'</span></span><span> =&gt; FILTER_VALIDATE_INT
];

</span><span><span class="hljs-variable">$filtered_data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">filter_var_array</span></span><span>(</span><span><span class="hljs-variable">$input_data</span></span><span>, </span><span><span class="hljs-variable">$filters</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filtered_data</span></span><span>);
</span></span>

In diesem Beispiel wird die E -Mail durch filter_validate_email verifiziert und das Alter wird überprüft, ob es sich um eine gültige Ganzzahl handelt. filter_var_array gibt ein Array zurück, das die gefilterten Daten enthält.

2. Übersicht über die Funktion filter_input_array

filter_input_array und filter_var_array haben ähnliche Funktionen, werden jedoch hauptsächlich verwendet, um Daten aus dem Eingabestream und Filter von PHP zu erhalten. Diese Funktion wird normalerweise verwendet, um Eingabedaten aus $ _get , $ _post , $ _cookie oder $ _Request aus einem Formular zu verarbeiten. Es empfängt auch zwei Parameter:

  • Der erste Parameter ist eine Konstante, die die Quelle der Eingabedaten angibt (z. B. input_get , input_post usw.).

  • Der zweite Parameter ist das Filterregel -Array, ähnlich wie filter_var_array .

Beispiel:

 <span><span><span class="hljs-variable">$filters</span></span><span> = [
    </span><span><span class="hljs-string">'email'</span></span><span> =&gt; FILTER_VALIDATE_EMAIL,
    </span><span><span class="hljs-string">'age'</span></span><span> =&gt; FILTER_VALIDATE_INT
];

</span><span><span class="hljs-variable">$filtered_data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">filter_input_array</span></span><span>(INPUT_POST, </span><span><span class="hljs-variable">$filters</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filtered_data</span></span><span>);
</span></span>

In diesem Beispiel wird filter_input_array Daten von $ _post abgerufen und die entsprechenden Filterregeln angewendet.

3. Hauptunterschiede

Verschiedene Quellen für Eingabedaten

filter_var_array wird verwendet, um Daten aus einem beliebigen Array zu filtern. Die Eingabedatenquelle wird ausschließlich vom Entwickler bereitgestellt und kann Daten aus einer Datenbank, einer Datei, einer Sitzung oder einem anderen Ort sein.

filter_input_array wird hauptsächlich verwendet, um Daten aus integrierten Eingabestreams von PHP zu erhalten (z. B. $ _get , $ _post usw.). Es wird normalerweise zum Filtern von Anforderungsdaten wie Formularverarbeitung, URL -Parametern, Cookies usw. verwendet.

Verschiedene Parameter werden übergeben

filter_var_array übergibt direkt ein Array als Eingabe, während filter_input_array vom globalen Eingangsarray von PHP abhängt, z. B. $ _post , $ _get usw.

Flexibilität und Anwendungsszenarien

filter_var_array eignet sich für alle Array -Daten, die filtriert werden müssen, unabhängig davon, woher die Daten stammen. filter_input_array eignet sich besser für die Verarbeitung von Daten aus Benutzeranfragen, insbesondere aus Formulierungen oder URL -Parametern.

4. Welches ist besser für Ihr Projekt geeignet?

  • Wenn Sie Daten aus externen Anforderungen (z. B. Formulareinführungen, URL -Parametern usw.) verarbeiten und sie filtern und überprüfen müssen, ist filter_input_array eine geeignetere Wahl. Es verarbeitet Daten direkt im Eingabestream und kann bequemer mit Global -Variablen von PHP verwendet werden (z. B. $ _get , $ _post ).

  • Wenn die von Ihnen verarbeitenden Daten nicht direkt aus dem Eingabestream von PHP stammen, sondern aus anderen Quellen (z. B. Datenbank-, Datei- oder Sitzungsdaten) stammen, ist filter_var_array flexibler und kann jedes Array entsprechend Ihren Anforderungen filtern.

5. Zusammenfassung

filter_var_array und filter_input_array sind beide sehr nützliche Tools. Ihre Hauptunterschiede liegen in der Quelle der Eingabedaten und der Anwendungsszenarien. Welche Funktion zu wählen, hängt von Ihren Bedürfnissen ab:

  • Wenn Sie Eingabestreamdaten wie Formulare, URL -Parameter, Cookies usw. verarbeiten müssen, wählen Sie filter_input_array .

  • Wenn Sie Daten aus anderen Quellen filtern müssen, wählen Sie filter_var_array .

Während des Entwicklungsprozesses kann die Auswahl der geeigneten Funktion nach verschiedenen Situationen die Sicherheit und Wartbarkeit des Codes effektiv verbessern.