Lassen Sie uns zunächst die grundlegende Nutzung der Substr () -Funktion überprüfen. Die Funktion der Funktion substr () besteht darin, ein Substring in der Zeichenfolge aus der angegebenen Position zurückzugeben und die Länge anzugeben. Die Syntax ist wie folgt:
<span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$start</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-literal">NULL</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
$ String : Eine ausstehende Zeichenfolge.
$ start : Startposition, negative Zahlen geben Berechnungen an, die ab dem Ende der Zeichenfolge beginnen.
$ Länge : Optionaler Parameter, der die Länge des Substring angibt. Wenn es weggelassen wird, wird das Teil von $ Start bis zum Ende der Zeichenfolge extrahiert.
JSON (JavaScript-Objektnotation) ist ein leichtes Datenaustauschformat, das häufig für die Front-End- und Back-End-Dateninteraktion verwendet wird. Eine typische JSON -Datenstruktur ist wie folgt:
<span><span><span class="hljs-punctuation">{</span></span><span>
</span><span><span class="hljs-attr">"name"</span></span><span><span class="hljs-punctuation">:</span></span><span> </span><span><span class="hljs-string">"John"</span></span><span><span class="hljs-punctuation">,</span></span><span>
</span><span><span class="hljs-attr">"age"</span></span><span><span class="hljs-punctuation">:</span></span><span> </span><span><span class="hljs-number">30</span></span><span><span class="hljs-punctuation">,</span></span><span>
</span><span><span class="hljs-attr">"city"</span></span><span><span class="hljs-punctuation">:</span></span><span> </span><span><span class="hljs-string">"New York"</span></span><span>
</span><span><span class="hljs-punctuation">}</span></span><span>
</span></span>
JSON-Daten enthalten normalerweise eine Struktur von Schlüsselwertpaaren, wobei der Schlüssel eine Zeichenfolge ist und der Wert eine Zeichenfolge, eine Zahl, ein Boolescher, ein Array oder sogar ein verschachteltes Objekt sein kann. Wenn wir den Wert eines Feldes aus einer JSON -Zeichenfolge extrahieren, verwenden wir normalerweise die Funktion json_decode (), um sie in ein PHP -Objekt oder ein assoziatives Array analysieren und dann direkt auf den entsprechenden Schlüssel zugreifen.
Angenommen, wir haben die folgende JSON -Zeichenfolge:
<span><span><span class="hljs-variable">$json_data</span></span><span> = </span><span><span class="hljs-string">'{"name": "John", "age": 30, "city": "New York"}'</span></span><span>;
</span></span>
Wenn wir den Daten "Name" extrahieren möchten: "John" , können wir theoretisch Substr () verwenden, um einen Teil der Zeichenfolge zu extrahieren. Zum Beispiel:
<span><span><span class="hljs-variable">$substring</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$json_data</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">20</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$substring</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe: {"name": "John"}</span></span><span>
</span></span>
Diese Methode extrahiert einen Teil der JSON -Zeichenfolge, aber es gibt einige Probleme. JSON -Daten sind ein strukturiertes Datenformat, und Substr () fällt einfach auf der Grundlage von Standorten ab. Daher ist es unmöglich, die Ebenen und Beziehungen zwischen verschiedenen Elementen in JSON zu verstehen. Bei Verwendung von substr () müssen wir die Position und Länge manuell berechnen, was für komplexe JSON -Daten oder die dynamisch ändernden JSON -Strukturen sehr unzuverlässig ist.
Struktur kann nicht analysiert werden : substr () kann nur Bytes bedienen und kann die tatsächliche Struktur der JSON -Daten nicht analysieren. Schlüssel und Werte in JSON können verschiedene Sonderzeichen oder Fluchtzeichen enthalten, von denen keiner mit einfachem Abfangen effektiv behandelt werden kann.
Unflexibel : Wenn sich die JSON-Datenstruktur ändert, wird die manuelle Berechnung der Startposition und der Länge der Zeichenfolge umständlich und fehleranfällig.
Mangelnde Fehlerbehandlung : Substr () prüft nicht, ob die Zielzeichenfolge das erwartete JSON -Format erfüllt, und kann daher zu Parsenfehlern führen.
Die korrekte Möglichkeit, JSON-Daten zu verarbeiten, besteht darin, die integrierte Funktion von PHP JSON_DECODE () zu verwenden, um die JSON-Zeichenfolge in eine PHP-Variable zu analysieren. Auf diese Weise können Sie in Ihren JSON -Daten problemlos auf einzelne Felder zugreifen. Zum Beispiel:
<span><span><span class="hljs-variable">$json_data</span></span><span> = </span><span><span class="hljs-string">'{"name": "John", "age": 30, "city": "New York"}'</span></span><span>;
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$json_data</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>); </span><span><span class="hljs-comment">// In assoziatives Array konvertieren</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>]; </span><span><span class="hljs-comment">// Ausgabe: John</span></span><span>
</span></span>
Wenn Sie nur einen Teil von JSON extrahieren müssen, kann dies erfolgen, indem Sie auf den entsprechenden Schlüssel zugreifen, ohne sich auf substr () zu verlassen. Dies ist nicht nur sicherer, sondern auch wartbarer.
Obwohl die Substr () -Funktion in einigen Fällen verwendet werden kann, um Teile aus JSON -Zeichenfolgen zu extrahieren, ist sie nicht das beste Werkzeug zum Umgang mit JSON -Daten. Die Verwendung von substr () kann unflexible Code und fehleranfällige verursacht, insbesondere wenn sich die JSON-Datenstruktur ändert. Bei der Verarbeitung von JSON -Daten besteht die am meisten empfohlene Methode darin, JSON_DECODE () zu verwenden, um JSON -Zeichenfolgen zu analysieren und über ein Array oder Objekt auf die erforderlichen Daten zuzugreifen.
Für Szenarien, in denen JSON -Zeichenfolgen manipuliert werden, können JSON_DECODE () und JSON_Encode () in Kombination verwendet werden, um JSON -Daten sicherer und zuverlässig zu extrahieren und zu modifizieren.