Bonjour à tous,

Je souhaiterais faire un lecteur de fichier texte et d'en ressortir un tableau.

J'ai donc un fichier texte qui ne comprend qu'une unique ligne, avec un caractère spécial pour séparer les différentes cases du tableau : "|".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
15953046|90847387|143892432||2010-09-06 10:41:59|
Je souhaite donc avoir un tableau de 5 cases :
[[15953046][90847387][143892432][][2010-09-06 10:41:59]]

Voici donc mon code :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
// j'ouvre mon fichier texte et je vérifie son ouverture
 
if (!$fp = fopen("fichier.txt","r")) {
echo "Echec de l'ouverture du fichier";
exit;
}
 
//si l'ouverture c'est bien passer
else {
	while(!feof($fp)) {
	// On récupère une ligne
		$Ligne = fgets($fp);
	// On stocke l'ensemble des lignes dans une variable
		$Fichier .= $Ligne;
	}
	//On afficher l'ensemble du fichier 
	echo "<p>".$Fichier."</p>";
 
	//Je souhaite faire un split sur le charactère "|" qui possède pour code ascii 124
	$a = chr(124);
	$tab = split( $a , $Fichier);	
 
	$size = count($tab);	
	for ($i = 0; $i <= $size; $i++){
		//Je souhaite afficher chaque case du tableau
                echo $tab[$i]."<br/>";
	}
 
	fclose($fp); // On ferme le fichier
}

Or mon split ne fonctionne pas.

J'ai donc fait des tests

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
    echo "fichier : ". $Fichier[8]."<br/>"; 
    echo "le ascii : ". chr(124)."<br/>";
    echo "le ISO : ". "|"."<br/>";
 
    if ( chr(124) == $Fichier[8]) {
        echo "ascii/fichier : c'est pareil <br/>";
        }
    else {
        echo "ascii/fichier : c'est pas pareil <br/>";
        }
 
    if ( chr(124) == "|") {
        echo "ascii/ISO : c'est pareil <br/>";
        }
    else {
        echo "ascii/ISO : c'est pas pareil <br/>";
        }
 
    if ( $Fichier[8] == "|") {
        echo "fichier/ISO : c'est pareil <br/>";
        }
    else {
        echo "fichier/ISO : c'est pas pareil <br/>";
        }
et voici ce qui apparait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
fichier : |
le ascii : |
le ISO : |
ascii/fichier : c'est pareil
ascii/ISO : c'est pas pareil
fichier/ISO : c'est pas pareil
donc techniquement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
chr(124) == $Fichier[8]
et donc le split
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
  $tab = split( chr(124) , $Fichier);    
devrais me sortir un tableau, hor
s il me dit que le tableau est vide.

Merci de votre aide!