Aktueller Standort: Startseite> Neueste Artikel> Warum erfüllt die Array -Länge, die nach der Verwendung der Exploit -Funktion erhalten wird, nicht die Erwartungen? Analyse der häufigen Ursachen für abnormale Länge der Exploit -Funktion

Warum erfüllt die Array -Länge, die nach der Verwendung der Exploit -Funktion erhalten wird, nicht die Erwartungen? Analyse der häufigen Ursachen für abnormale Länge der Exploit -Funktion

gitbox 2025-06-08

Bei der Verwendung von PHPs Exploit () -Funktion können viele Entwickler auf Situationen stoßen, in denen die resultierende Array -Länge nicht den Erwartungen entspricht. Der Zweck der Funktion exploit () besteht darin, eine Zeichenfolge in mehrere Substrings aufzuteilen und ein Array zurückzugeben. Theoretisch sollte die Funktion exploit () die Zeichenfolge in mehrere Teile aufteilen, die von einem Trennzeichen begrenzt sind und ein Array der korrekten Länge zurückgeben. Manchmal ist die zurückgegebene Arraylänge jedoch möglicherweise nicht so, wie wir es erwartet hatten, und die Ursache dafür ist normalerweise auf einige Details zurückzuführen, die in diesem Artikel gemeinsame Ursachen analysiert.

Grundlegende Verwendung von Exploit () -Funktion

Die grundlegende Syntax der Funktion exploit () lautet wie folgt:

 array explode(string $delimiter, string $string[, int $limit = PHP_INT_MAX])
  • $ granditer : delimiter, verwendet, um Zeichenfolgen zu teilen.

  • $ String : Die String, die geteilt werden soll.

  • $ limit (optional): Begrenzt die zurückgegebene Arraylänge. Wenn $ Limit nicht festgelegt ist, werden alle geteilten Teile zurückgegeben.

Beispiel:

 $string = "apple,banana,orange";
$result = explode(",", $string);
print_r($result);

Die Ausgabe wird sein:

 Array
(
    [0] => apple
    [1] => banana
    [2] => orange
)

In praktischen Anwendungen können wir jedoch auf einige Situationen stoßen, die uns verwirrt, und die resultierende Arraylänge ist möglicherweise nicht wie erwartet aufgeteilt. Als nächstes werden wir mehrere gemeinsame Situationen analysieren.


Gemeinsame Ursache Analyse

1. Der Trennzeichen ist eine leere Zeichenfolge oder existiert nicht

Wenn $ delimiter eine leere Zeichenfolge ist oder $ delimiter in $ String nicht vorhanden ist, gibt die Funktion exploit () ein Array zurück, das die ursprüngliche Zeichenfolge enthält. Zum Beispiel:

 $string = "apple,banana,orange";
$result = explode("", $string);  // delimiter is an empty string
print_r($result);

In diesem Beispiel, da der Trennzeichen eine leere Zeichenfolge ist, enthält das zurückgegebene Array jedes Zeichen als Array -Element.

2. Verarbeitung leerer Saiten oder Whitespace -Zeichen

Wenn die String $ -Sching aufgeteilt wird oder weiße Zeichen (z. B. Leerzeichen, Zeilenumbrüche usw.) enthält, gibt exploit () ein Array mit Länge 1 zurück, und das einzige Element im Array ist die ursprüngliche Zeichenfolge. Dies liegt daran, dass es keinen gültigen Trennzeichen gibt, um die Zeichenfolge zu teilen.

 $string = "";
$result = explode(",", $string);
print_r($result);

Das Ausgangsergebnis ist:

 Array
(
    [0] => 
)

In ähnlicher Weise wird exploit () ein Array mit leeren Zeichenfolgen von Whitespace -Zeichen zurückgibt, wenn die Zeichenfolge nur aus Whitespace -Zeichen wie "" besteht.

3. Verwendung von Grenzparametern

Der Grenzparameter ist ein sehr wichtiger Parameter in der Funktion exploit () . Wenn $ Limit festgelegt ist, wird die zurückgegebene Array -Länge dadurch begrenzt. Wenn beispielsweise $ Limit geringer ist als die Anzahl der zu trennen, enthält das letzte Element des Arrays alle verbleibenden Teile.

 $string = "apple,banana,orange,grape";
$result = explode(",", $string, 3);
print_r($result);

Ausgangsergebnis:

 Array
(
    [0] => apple
    [1] => banana
    [2] => orange,grape
)

Wie oben gezeigt, enthält das zurückgegebene Array aufgrund von Grenzeinstellungen nur drei Elemente, und das letzte Element enthält alle verbleibenden Teile.

4. Am Schwanz befindet sich ein Trennzeichen

Wenn der Schwanz einer Zeichenfolge einen Separator enthält, verwendet exploit () auch die schwanz leere Zeichenfolge als Element des Arrays. Wenn die Zeichenfolge beispielsweise "Apple, Banane" ist und der Trennzeichen ist , wird Exploit () am Ende ein leeres Element hinzufügen.

 $string = "apple,banana,";
$result = explode(",", $string);
print_r($result);

Das Ausgangsergebnis ist:

 Array
(
    [0] => apple
    [1] => banana
    [2] => 
)

Wenn Sie in diesem Fall das Ende des leeren Elements nicht erwarten, wird ein zusätzliches Element zur Länge des Arrays hinzugefügt.

5. Die Zeichenfolge enthält mehrere aufeinanderfolgende Separatoren

Wenn in der Zeichenfolge mehrere aufeinanderfolgende Trennzeichen auftreten, behandelt Exploit () diese aufeinanderfolgenden Separatoren als mehrere Separatoren, und das Ergebnis ist, dass ein Array -Element einer leeren Zeichenfolge erzeugt wird.

Zum Beispiel:

 $string = "apple,,banana,,orange";
$result = explode(",", $string);
print_r($result);

Das Ausgangsergebnis ist:

 Array
(
    [0] => apple
    [1] => 
    [2] => banana
    [3] => 
    [4] => orange
)

Mehrere aufeinanderfolgende Kommas führen hier mehrere leere Elemente im Array.