Maison  >  Article  >  développement back-end  >  Une explication des problèmes que les novices peuvent facilement ignorer lors de l'utilisation d'exploser pour diviser des chaînes en PHP

Une explication des problèmes que les novices peuvent facilement ignorer lors de l'utilisation d'exploser pour diviser des chaînes en PHP

jacklove
jackloveoriginal
2018-06-09 09:44:342303parcourir

1.description de la méthode explosion

La méthode d'explosion peut diviser une chaîne en un tableau basé sur une certaine chaîne comme point limite.

array explode ( string $delimiter , string $string [, int $limit ] )

Renvoie un tableau composé de chaînes. Chaque élément est une sous-chaîne de chaîne, séparée par le délimiteur de chaîne comme point de frontière.

Description du paramètre :
délimiteur
Caractère délimiteur sur la frontière.

chaîne
Chaîne d'entrée

limite
Si le paramètre limite est défini et qu'il s'agit d'un nombre positif, le tableau renvoyé contient au plus des éléments limites, et le dernier élément contiendra le reste de la chaîne.
Si le paramètre limit est un nombre négatif, alors tous les éléments sauf les derniers éléments -limit sont renvoyés.
Si la limite est 0, elle sera traitée comme 1.

2. L'exemple

est utilisé pour diviser la chaîne

<?php$str = &#39;1,2,3,4,5,6,7,8,9&#39;;$arr = explode(&#39;,&#39;, $str);echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);echo &#39;
';?>

sortie :

Array(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9)

est utilisé, divisez la chaîne, la limite est un nombre positif

<?php$str = &#39;1,2,3,4,5,6,7,8,9&#39;;$arr = explode(&#39;,&#39;, $str, 5);echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);echo &#39;
';?>

Sortie :

Array(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5,6,7,8,9)

Utilisez, pour diviser la chaîne, la limite est un nombre négatif

<?php$str = &#39;1,2,3,4,5,6,7,8,9&#39;;$arr = explode(&#39;,&#39;, $str, -3);echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);echo &#39;
';?>

Sortie :

Array(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6)

Utiliser, diviser la chaîne, la limite est 0

<?php$str = &#39;1,2,3,4,5,6,7,8,9&#39;;$arr = explode(&#39;,&#39;, $str,0);echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);echo &#39;
';?>

Sortie :

Array(
    [0] => 1,2,3,4,5,6,7,8,9)

3. Problèmes faciles à ignorer

Généralement, nous utilisons l'explosion pour diviser les données telles que les chaînes d'identification

<?php$ids = &#39;1,2,3,4&#39;;$data = explode(&#39;,&#39;, $ids);if($data){    foreach($data as $k=>$v){        // do sth
    }
}?>

Dans des circonstances normales, les identifiants sont pas vide, et vous ne saurez pas si vous regardez le code. Si vous rencontrez un problème, car il y a un jugement if (data), il est généralement considéré qu'un traitement vide a été effectué.
Mais la situation réelle est que ids=null, mais les données ne sont pas vides, ce qui posera des problèmes avec le code exécuté dans foreach.

<?php$ids = null;$data = explode(&#39;,&#39;, $ids);if($data){
    print_r($data);
}else{    echo &#39;null&#39;;
}?>

Parce que ids=null, utilisez exploser pour diviser, et le tableau résultant est Array ( [0] => ) au lieu de Array() .

Il est donc jugé qu'il doit être modifié pour éviter les problèmes.

d8d2503db740dae030e72ac444eb1af8$v){        // do sth
    }
}?>

Cet article explique les problèmes que les novices peuvent facilement ignorer lors de l'utilisation d'exploser pour diviser des chaînes en PHP. Pour plus d'informations. contenu, veuillez faire attention au site Web PHP chinois.

Recommandations associées :

Explication sur la méthode de données à deux colonnes dans la table d'échange MySQL

Comment générer 0~1 aléatoire via php Méthode décimale

Instructions pour utiliser la fonction de format d'horodatage mysql from_unixtime

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn