Heim Backend-Entwicklung PHP-Problem So maskieren Sie Strings in einem Array in PHP

So maskieren Sie Strings in einem Array in PHP

Apr 19, 2023 am 10:07 AM

In PHP verwenden wir normalerweise Arrays, um einen Datensatz zu speichern und zu bearbeiten. Manchmal müssen wir diese Daten an eine Datenbank senden oder auf einer Webseite ausgeben. Da einige Zeichenfolgen jedoch Sonderzeichen enthalten können (z. B. einfache Anführungszeichen, doppelte Anführungszeichen, umgekehrte Schrägstriche usw.), führt die direkte Ausgabe dieser Zeichenfolgen zu Sicherheitslücken oder Laufzeitfehlern im Programm. Daher müssen wir diese Zeichenfolgen maskieren, damit sie in der Datenbank oder Webseite korrekt angezeigt werden und funktionieren.

PHP bietet eine spezielle Funktion zum Escapen von Zeichenfolgen, nämlich die Funktion addslashes(). Diese Funktion kann Sonderzeichen in einer Zeichenfolge maskieren, um sie in eine „sichere“ Zeichenfolge umzuwandeln. Wenn wir beispielsweise eine Zeichenfolge $mystr haben, die einfache und doppelte Anführungszeichen enthält, können wir sie mit dem folgenden Code maskieren:

$mystr = "It's a \"quote\" string";
$mystr = addslashes($mystr);
echo $mystr;  //输出:It\'s a \"quote\" string
Nach dem Login kopieren

In diesem Beispiel definieren wir zunächst eine Zeichenfolge, die einfache und doppelte Anführungszeichen enthält. Die Zeichenfolge $mystr. Als nächstes verwenden wir die Funktion addslashes(), um den String zu maskieren und einen neuen String $mynewstr zu erhalten. Schließlich geben wir $mynewstr aus und können sehen, dass alle Sonderzeichen in entsprechende Zeichenentitäten maskiert wurden.

Wenn wir jedoch einen String in einem Array entkommen müssen, ist der obige Code nicht mehr anwendbar. In diesem Fall müssen wir eine benutzerdefinierte Funktion verwenden, um das gesamte Array zu durchlaufen und die Zeichenfolgen einzeln zu maskieren.

Das Folgende ist eine benutzerdefinierte Funktion addslashes_array(), die ein Array als Parameter akzeptiert und ein neues Array zurückgibt, in dem die Zeichenfolgen maskiert wurden:

function addslashes_array($array) {
    foreach($array as $key=>$value) {
        if(is_array($value)) {
            $array[$key] = addslashes_array($value);
        } else {
            $array[$key] = addslashes($value);
        }
    }
    return $array;
}
Nach dem Login kopieren

Die Funktion durchläuft zunächst das Array und überprüft jedes Element. Wenn das Element kein Array ist, verwenden Sie die Funktion addslashes(), um es zu maskieren. Andernfalls rufen Sie sich selbst rekursiv auf und durchlaufen die Elemente im Subarray weiter. Schließlich gibt die Funktion ein brandneues Array zurück, in dem alle Zeichenfolgen maskiert wurden.

Die Verwendung dieser Funktion ist sehr einfach. Übergeben Sie ihr einfach das Array, das Sie maskieren möchten, als Parameter. Wir haben zum Beispiel die folgenden Testdaten:

$data = array(
    'id' => 1, 
    'name' => "John O'Hara", 
    'email' => 'john@yahoo.com', 
    'hobbies' => array('reading', 'music', 'swimming')
);
Nach dem Login kopieren

, die ein Namensfeld mit einfachen Anführungszeichen in einer Zeichenfolge enthalten. Jetzt können wir die Funktion addslashes_array() aufrufen, um das Array zu maskieren:

$escaped_data = addslashes_array($data);
Nach dem Login kopieren

Schließlich können wir das $escaped_data-Array ausgeben, um zu sehen, ob sein Inhalt korrekt maskiert wurde:

Array
(
    [id] => 1
    [name] => John O\'Hara
    [email] => john@yahoo.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => music
            [2] => swimming
        )

)
Nach dem Login kopieren

Das können Sie im $escaped_data-Array All sehen Zeichenfolgen wurden korrekt maskiert. Wenn wir das Array für Datenbankabfragen oder die Ausgabe auf einer Webseite verwenden, müssen wir uns auf diese Weise keine Sorgen über Sicherheitsprobleme und Programmfehler machen, die durch Sonderzeichen verursacht werden.

Kurz gesagt: Wenn wir einen Datensatz mit Sonderzeichen speichern und verarbeiten müssen, sollten wir die Zeichenfolgen separat maskieren, um Sicherheitslücken und Programmfehler zu vermeiden. Verwenden Sie die Funktion addslashes(), um eine einzelne Zeichenfolge zu maskieren, und verwenden Sie die benutzerdefinierte Funktion addslashes_array(), um alle Zeichenfolgen im Array zu maskieren. Dies ist eine der grundlegenden Fähigkeiten, die PHP-Programmierer beherrschen müssen.

Das obige ist der detaillierte Inhalt vonSo maskieren Sie Strings in einem Array in PHP. 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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Heiße Themen

Java-Tutorial
1662
14
PHP-Tutorial
1261
29
C#-Tutorial
1234
24