OVH Cloud OVH Cloud

Erreur parcours tableau

2 réponses
Avatar
Lea
Bonjour,

Le code suivant :


$fileOpen=fopen($fileName,"r");
$FileContent=fread($fileOpen,filesize($fileName));
$line=explode("\r",$FileContent);
fclose($fileOpen);

$i=0;
while($i<sizeof($line)){
$dataPair=explode(",",$line[$i]);
if($dataPair[4]=="$Number"){
$match=1;
break;
}else{
$match=0;
}
$i++;
}

fait que :

à chaque lecture de la variable $dataPair, mon tableau ne recommence pas à
$dataPair[0] mais à $dataPair[6].

Mon fichier texte :

$a,$b,$c,$d,$e<\r>$a,$b,$c,$d,$e<\r>....

Cela fait des jours que je bataille et je ne m'en sors pas...

Merci.

Léa

2 réponses

Avatar
Paul Delannoy
Lea a écrit:
Bonjour,

Le code suivant :


$fileOpen=fopen($fileName,"r");
$FileContent=fread($fileOpen,filesize($fileName));
$line=explode("r",$FileContent);
fclose($fileOpen);

$i=0;
while($i<sizeof($line)){
$dataPair=explode(",",$line[$i]);
if($dataPair[4]=="$Number"){
$match=1;
break;
}else{
$match=0;
}
$i++;
}

fait que :

à chaque lecture de la variable $dataPair, mon tableau ne recommence pas à
$dataPair[0] mais à $dataPair[6].


Que veux tu dire par là ?

Avatar
cmeresse
"Lea" wrote in message news:<c92fhc$ba7$...

Le code suivant :

$fileOpen=fopen($fileName,"r");
$FileContent=fread($fileOpen,filesize($fileName));
$line=explode("r",$FileContent);


Tout d'abord ici il y a probablement un probleme. Si j'ai bien compris
ce
que tu veux, il faut proteger l'antislash pour qu'il soit pris en
compte.

$line=explode("r",$FileContent);

Le mieux dans ton cas serait peut-etre même:

$line=explode("<r>",$FileContent);

fclose($fileOpen);
[snip]

}

fait que :

à chaque lecture de la variable $dataPair, mon tableau ne recommence pas à
$dataPair[0] mais à $dataPair[6].


Apres je vois pas le probleme.
J'ai reproduit le truc chez moi en rajoutant des print_r:
<?
$fileName="tableau.dat";
$fileOpen=fopen($fileName,"r");
$FileContent=fread($fileOpen,filesize($fileName));
$line=explode("<r>",$FileContent);
fclose($fileOpen);
print_r($line);
echo "<br><br>";
$i=0;
while($i<sizeof($line)){
$dataPair=explode(",",$line[$i]);
print_r($dataPair);
echo "<br>";
if($dataPair[4]=="$Number"){
$match=1;
break;
}else{
$match=0;
}
$i++;
}

Et ca donne:

Array ( [0] => $a,$b,$c,$d,$e [1] => $a,$b,$c,$d,$e [2] =>
$a,$b,$c,$d,$e [3] => $a,$b,$c,$d,$e [4] => )

Array ( [0] => $a [1] => $b [2] => $c [3] => $d [4] => $e )
Array ( [0] => $a [1] => $b [2] => $c [3] => $d [4] => $e )
Array ( [0] => $a [1] => $b [2] => $c [3] => $d [4] => $e )
Array ( [0] => $a [1] => $b [2] => $c [3] => $d [4] => $e )
Array ( [0] => )

Si tu veux plus d'aide il va falloir plus d'explications je crois...

A+
Christophe