[PHP] la fonction Split

kkwet30 -  
 Siluni -
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 : "|".
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 :

// 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

    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 :

fichier : | 
le ascii : | 
le ISO : | 
ascii/fichier : c'est pareil 
ascii/ISO : c'est pas pareil 
fichier/ISO : c'est pas pareil 


donc techniquement : chr(124) == $Fichier[8] et donc le split
$tab = split( chr(124) , $Fichier);
devrais me sortir un tableau, hors il me dit que le tableau est vide.

Merci de votre aide!
A voir également:

2 réponses

le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   239
 
Salut pourquoi ne pas utilisé axplode?

$tableau = explode('|',$Fichier);
0
Siluni
 
Utilise explode, la methode split est deprecated (genere un E WARNING)
0