Explode avec espace comme séparateur ne marche pas

Bonjour,

Le code cherche à exploser une chaine de caractère, avec l'espace comme séparateur, afin d'obtenir un tableau.
La chaine est le retour d'une commande qu'on lance au shell et qui renvoie par exemple
"nomDeFichier1<espace>nomDeFichier2<espace>nomDeFichier3"
seulement l'explode ne retourne qu'une valeur, il n'explose rien.
voici le code:

$shellReq="grep -ri $chaineAChercher MonRep/files/*.txt";
$shellRet=shell_exec($shellReq);
echo '<br>la console retourne:'.$shellRet;
$array_fichiers=explode(' ', $shellRet);

print_r($array_fichiers);

et ça me retourne tous les noms de fichier dans une seule cellule de tableau, donc il n'a effectuer aucun split
j'ai également essayé avec
$array_fichiers=explode(" ", $shellRet);

En fait on dirait que le caractère espace retourné par le shell n'est pas identique au caractère espace reconnu par php. d'ailleurs cette fonction :
$shellRetMod=str_replace(" ", ".", $shellRet);
ne remplace pas non plus les espace par des points.

Est-ce que quelqu'un pourrait me dire comment exploser cette chaine ?

Merci,

2 réponses

  1. Salut Kyser soze,

    Merci pour ta réponse !

    Bizarrement ça me donne toujours le même résultat, c'est dingue Oo

    Je continue de chercher,

    Klaus
    1. Alors en fait le shell met tout dans un string, mais ce qu'on visualise comme étant un espace, est en réalité un crlf (le caractère hexadecimal 10)
  2. Salut,

    Je suis assez étonnée du résultat ^^ , cette fonction ne réserve pas beaucoup de surprise habituellement.

    Peut être un problème d'encodage à la récupération??
    Tu peux tester :

    $texte1=explode(utf8_encode(" "),utf8_encode($texte)); 

    Résolu? ===> [RESOLU]