Heim >Backend-Entwicklung >PHP-Problem >So konvertieren Sie eine geschweifte Zeichenfolge in ein Array in PHP

So konvertieren Sie eine geschweifte Zeichenfolge in ein Array in PHP

PHPz
PHPzOriginal
2023-04-26 09:16:25810Durchsuche

In der PHP-Entwicklung müssen wir häufig die Konvertierung von Strings und Arrays in der Codelogik durchführen. Einer der häufigsten Fälle ist die Konvertierung einer geschweiften Zeichenfolge in ein PHP-Array. Diese Transformation ermöglicht es uns, die Daten einfacher zu manipulieren. In diesem Artikel besprechen wir, wie man in PHP eine geschweifte Zeichenfolge in ein Array umwandelt.

  1. String mit Klammern

Eine Zeichenfolge mit Klammern ist eine in geschweifte Klammern ({}) eingeschlossene Zeichenfolge, in der jedes Schlüssel-Wert-Paar durch einen Doppelpunkt (:) getrennt ist und mehrere Schlüssel-Wert-Paare durch Kommas getrennt sind (,). Hier ist beispielsweise ein Beispiel für eine Zeichenfolge in Klammern:

$str = "{ 'name': 'John', 'age': 25, 'city': 'New York' }";

Das Format einer Zeichenfolge in Klammern ist dem JSON-Format sehr ähnlich. Es gibt jedoch einen wesentlichen Unterschied zwischen ihnen: In geschweiften Zeichenfolgen müssen Schlüsselnamen und Zeichenfolgenwerte in einfache Anführungszeichen (') eingeschlossen werden, während sie in JSON einfache oder doppelte Anführungszeichen ("") verwenden können.

  1. Konvertierungsmethode

In PHP können wir die Funktion eval() verwenden, um eine Zeichenfolge in Klammern in ein Array umzuwandeln. Die Funktion eval() führt die als PHP-Code übergebene Zeichenfolge aus. Wir können dies also tun, indem wir die Anführungszeichen in der Zeichenfolge in Klammern maskieren, sie in eine Zeichenfolgenvariable einfügen und diese Variable an die Funktion eval() übergeben, um eine Konvertierung zu erreichen. Die konkreten Schritte sind wie folgt:

  • Ersetzen Sie die einfachen Anführungszeichen in der geschweiften Zeichenfolge durch doppelte Anführungszeichen.
  • Fügen Sie die gesamte Zeichenfolge in eine Zeichenfolgenvariable ein.
  • Verwenden Sie die Funktion eval(), um die Zeichenfolgenvariable als PHP-Code auszuführen Array. Das Folgende ist ein Beispiel: Es kann jeder beliebige PHP-Code ausgeführt werden, daher bestehen gewisse Sicherheitsrisiken. Wenn bösartiger Code versehentlich eingeschleust wird, kann er dazu führen, dass sich der Code auf eine Weise verhält, die er nicht sollte. Daher sollten Sie bei der Verwendung der Funktion eval() Folgendes beachten:

Verwenden Sie die Funktion eval() nur bei Bedarf, versuchen Sie, andere Konvertierungsmethoden zu verwenden.

Verwenden Sie keine ungefilterten Benutzereingaben als Parameter der Bewertung ()-Funktion

    Überprüfen und filtern Sie die Eingabe, um das Einschleusen von Schadcode zu vermeiden
  1. Vermeiden Sie die Verwendung von Interpolationsvariablen in der Funktion eval(), da die Interpolationsvariablen möglicherweise Schadcode enthalten

    Verwenden Sie zum Konvertieren die Funktion json_decode()
  • Um zu vermeiden, dass die Funktion eval() Sicherheitsprobleme mit sich bringt, können wir die Funktion json_decode() in PHP verwenden, um die geschweifte Zeichenfolge in ein Array umzuwandeln. Die Funktion json_decode() kann JSON-formatierte Zeichenfolgen analysieren und in PHP-Arrays oder -Objekte konvertieren. Obwohl es sich bei der Klammerzeichenfolge nicht um ein Standard-JSON-Format handelt, können wir sie in eine JSON-Formatzeichenfolge konvertieren und sie dann mit der Funktion json_decode() analysieren, da sie dem JSON-Format sehr ähnlich ist. Der spezifische Code lautet wie folgt:
$str = "{ 'name': 'John', 'age': 25, 'city': 'New York' }";

// 将单引号转义为双引号
$json = str_replace("'", "\"", $str);

// 将字符串放到一个字符串变量中
$code = '$arr = ' . $json . ';';

// 使用eval()函数执行代码,得到数组
eval($code);

print_r($arr);
  • Das Ergebnis der Codeausführung ist das gleiche wie bei Verwendung der Funktion eval():
  • Array
    (
        [name] => John
        [age] => 25
        [city] => New York
    )
  • Zusammenfassung
  • In diesem Artikel haben wir vorgestellt, wie man in PHP einen geschweiften String in ein Array umwandelt. Aufgrund von Sicherheitsproblemen mit der Funktion eval() empfehlen wir die Verwendung der Funktion json_decode() für die Konvertierung. Unabhängig davon, welche Methode Sie verwenden, sollten Sie beim Umgang mit verspannten Saiten auf Sicherheit achten.

      Das obige ist der detaillierte Inhalt vonSo konvertieren Sie eine geschweifte Zeichenfolge in ein Array in PHP. 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