2
votes

Problème avec php explose, en essayant de séparer une chaîne

J'ai un problème avec cette chaîne

$numbers= explode("\n",$numbers); 

$numbers= explode(" ",$numbers);

$numbers= explode("<br>",$numbers);  

$numbers= str_replace("\n", " ", "<br>", $numbers)

Le résultat que je veux est = array ("12312312312312312", "12312312312312312") etc ... p>

Je veux séparer les entrées à mettre dans la barre, j'ai essayé toutes ces méthodes avec php:

string(313) "
12312312312312312
12312312312312312
12312312312312312
12312312312312312
12312312312312312
12312312312312312
12312312312312312
12312312312312312
12312312312312312
12312312312312312"


0 commentaires

3 Réponses :


2
votes

Vous devez exploser () avec une nouvelle ligne ( PHP_EOL ):

$numbers= array_filter(explode(PHP_EOL, $numbers)); // PHP_EOL used for new line

print_r($numbers);

Sortie: - https://3v4l.org/0OH4N

Remarque: - array_filter () utilisé pour supprimer les index de valeurs vides et nulles du tableau


0 commentaires

0
votes

Remplacez d'abord tout élément de nouvelle ligne par un simple espace, par exemple comme

$numbers = explode(" ",$numbers);

Ensuite, vous pouvez simplement utiliser l'explosion que vous avez déjà essayé:

$numbers = trim(preg_replace('/\s+/', ' ', $numbers));


2 commentaires

Après avoir rangé la question, il semble que la chaîne est séparée par NewLine :)


@RiggsFolly le s + peut également gérer \ n et \ r . Je l'ai testé avec le code rangé;)



0
votes

Vous pouvez initialiser la chaîne dans cet ordre. Cela peut vous aider

$str ="12312312312312312 12312312312312312 12312312312312312 12312312312312312 12312312312312312 12312312312312312 12312312312312312";
var_dump(explode(" ",$str));


0 commentaires