Curiosité avec explode

Signaler
Messages postés
13
Date d'inscription
samedi 15 mars 2003
Statut
Membre
Dernière intervention
29 août 2011
-
Messages postés
13
Date d'inscription
samedi 15 mars 2003
Statut
Membre
Dernière intervention
29 août 2011
-
Bonjour,

J'ai du code dans lequel j'utilise explode :

$fieldSepar=chr(9);
$IP = 0;
$HD = 1;

$curFile = fopen( $fileName, "r");
while (!feof($curFile)) {
$current_line = fgets($curFile);
if (!feof($curFile)) {
$dataArray = explode ( $fieldSepar, $current_line);

$IParray[] = (string)$dataArray[$IP];
$HD[] = (string)$dataArray[$HD];
...

Je pensais que cela fonctionnerait, mais je dois faire :

$IParray[] = (string)$dataArray[0];//ici placer 0 directement
$HD[] = (string)$dataArray[1];//ici placer 1 directement
...

Je ne comprends pas pourquoi. Une idée ?

Christian

5 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
Salut,

Ben oui, ça devrait marcher...

Sinon, plutôt que t'embêter, utilise directement la fonction list() :
list($IParray[], $HD[]) = explode($fieldSepar, $current_line);
Pas besoin comme ça de passer par des variables intermédiaires totalement inutiles ;)

--
Neige

N'hésitez pas à lire la doc
Messages postés
13
Date d'inscription
samedi 15 mars 2003
Statut
Membre
Dernière intervention
29 août 2011

Merci du feedback. En effet je débute en PHP.

Christian
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Salut,

Le problème est que tu redéfinie $HD là :
$HD[] = (string)$dataArray[$HD];


Donc à la seconde itération de la boucle $HD ne vaut plus 1 mais est un tableau.
D'ailleurs une erreur devrait être générée. J'imagine qu'elles ne sont pas activées. Ajoute donc ceci tout en haut de ton code :
ini_set('display_errors', 1);
error_reporting(-1);



Cordialement,


Kohntark -
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
AHAH j'étais vraiment trop fatigué hier pour n'avoir pas vu cette erreur !

--
Neige

N'hésitez pas à lire la doc
Messages postés
13
Date d'inscription
samedi 15 mars 2003
Statut
Membre
Dernière intervention
29 août 2011

Bien vu !

Christian