Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1689 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Fichier .txt => Tableau Array() ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fichier .txt => Tableau Array() ?

n°1382768
nycius
Ich liebe dich !
Posté le 07-06-2006 à 12:19:29  profilanswer
 

Salut  :hello:  
 
J'aimerai pouvoir charger un fichier texte type  

Code :
  1. blop
  2. salut
  3. john


 
pour qu'il se transforme en un tableau Array() type :

Code :
  1. $tableau = array
  2. (
  3. 'blop',
  4. 'salut',
  5. 'john',
  6. )


 
QQun saurait m'expliquer ?


Message édité par nycius le 07-06-2006 à 12:20:06
mood
Publicité
Posté le 07-06-2006 à 12:19:29  profilanswer
 

n°1382770
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-06-2006 à 12:21:43  profilanswer
 
n°1382786
aipsy0783
Posté le 07-06-2006 à 12:53:40  profilanswer
 

http://fr2.php.net/manual/fr/function.fgets.php
 

Code :
  1. <?php
  2. $tableau = array();
  3. $handle = @fopen("tonfichier.txt", "r" );
  4. if ($handle)
  5. {
  6.    while (!feof($handle))
  7.    {
  8.      $buffer = fgets($handle, 4096);
  9.      $tableau[] = $buffer;
  10.    }
  11.    fclose($handle);
  12. }
  13. if ($tableau)
  14. {
  15.    print_r($tableau);
  16. }
  17. else
  18. {
  19.    echo "Le remplissage du tableau a échoué";
  20. }
  21. ?>

Message cité 1 fois
Message édité par aipsy0783 le 07-06-2006 à 12:57:21
n°1382787
zapan666
Tout est relatif
Posté le 07-06-2006 à 12:56:34  profilanswer
 

aipsy0783 a écrit :

http://fr2.php.net/manual/fr/function.fgets.php
 

Code :
  1. <?php
  2. $handle = @fopen("/tmp/inputfile.txt", "r" );
  3. if ($handle) {
  4.    while (!feof($handle)) {
  5.      $buffer = fgets($handle, 4096);
  6.      echo $buffer;
  7.    }
  8.    fclose($handle);
  9. }
  10. ?>



[:pingouino]
 
Via l'url d'avant :

Code :
  1. $arr = file('./monfichier');


C'est juste 10 fois plus cour [:pingouino]


---------------
my flick r - Just Tab it !
n°1382790
aipsy0783
Posté le 07-06-2006 à 12:59:01  profilanswer
 

c'est en cas où il fait des modifs hein ;) comme mettre des majuscules au début de ces noms par exemple lol ou récupérer que ceux qui commencent par "b"

Message cité 1 fois
Message édité par aipsy0783 le 07-06-2006 à 13:00:56
n°1382792
zapan666
Tout est relatif
Posté le 07-06-2006 à 13:00:51  profilanswer
 

aipsy0783 a écrit :

c'est en cas où il fait des modifs hein ;) comme mettre des majuscules au début de ces noms par exemple lol


 :o Fausse excuse
http://fr2.php.net/manual/en/function.array-walk.php  ;)  


---------------
my flick r - Just Tab it !
n°1382793
aipsy0783
Posté le 07-06-2006 à 13:01:45  profilanswer
 

ouais mais non c'est quoi ce truc en deux fonctions lol
 
vla...
 

Code :
  1. <?PHP
  2. class fichier
  3. {
  4.   var $fichier;
  5.   var $handle;
  6.   function fichier($chaine)
  7.   {
  8.     $this->fichier = $chaine;
  9.   }
  10.   function open()
  11.   {
  12.     $this->handle = @fopen($this->fichier,"r" );
  13.   }
  14.   function recupLigne()
  15.   {
  16.     $buffer = fgets($this->handle, 4096);
  17.     return $buffer;
  18.   }
  19.   function stock()
  20.   {
  21.     $this->open("r" );
  22.     if ($this->handle)
  23.     {
  24.       $tab = array();
  25.       while (!feof($this->handle))
  26.       {
  27.         $ligne = $this->recupLigne();
  28.         $tab[] = $this->traitement($ligne);
  29.       }
  30.       $this->close();
  31.       return $tab; 
  32.     }
  33.   }
  34.   function traitement($chaine)
  35.   {
  36.     // fonction éventuelle de traitement
  37.     return $chaine;
  38.   }   
  39. }
  40. $monfichier = new fichier("montexte.txt" );
  41. $montableau = $monfichier->stock();
  42. ?>


Message édité par aipsy0783 le 07-06-2006 à 13:16:38
n°1382852
nycius
Ich liebe dich !
Posté le 07-06-2006 à 14:06:41  profilanswer
 

Merci les gars ca marche impec
 
seul soucis
j'ai que 3 lignes dans mon fichier texte pourtant en resultat il m'affiche 4 lignes avec la derniere vide

n°1382909
zapan666
Tout est relatif
Posté le 07-06-2006 à 15:00:46  profilanswer
 

a cause d'un \n en trop dans ton fichier surement


---------------
my flick r - Just Tab it !
n°1383069
aipsy0783
Posté le 07-06-2006 à 17:57:13  profilanswer
 

mais ça avec une fonction de traitement tu peux vérifier que la chaine n'est pas vide :P

mood
Publicité
Posté le 07-06-2006 à 17:57:13  profilanswer
 

n°1383084
zapan666
Tout est relatif
Posté le 07-06-2006 à 18:08:04  profilanswer
 

aipsy0783 a écrit :

mais ça avec une fonction de traitement tu peux vérifier que la chaine n'est pas vide :P


ou en enlevant le \n du fichier de donnes


---------------
my flick r - Just Tab it !
n°1383091
dwogsi
Défaillance cérébrale...
Posté le 07-06-2006 à 18:14:17  profilanswer
 

encore plus court :

Code :
  1. $values = explode("\n",file_get_contents("fichier.txt" ));


Message édité par dwogsi le 07-06-2006 à 18:15:53
n°2233289
denis acf0​1
Posté le 13-07-2014 à 13:07:57  profilanswer
 

Bonjour, pouvez vous m'aidé car je suis débutant
je peux lire mon fichier mais je souhaiterais le faire dans un tableau en récupérant certaines lignes du fichier.Merci

Code :
  1. <?php
  2. $bdd = NEW PDO('mysql:host=localhost;dbname=server_statut','root','', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
  3. $reponse = mysqli_init("SELECT * FROM server_statut" );
  4. $url="http://aventureclub-airlines.fr/whazzup/whazzup.txt";
  5. $tab = file($url);
  6. $start = FALSE;
  7. foreach ($tab as $line) {
  8. $line = trim($line);
  9. if ($line == '') { break; }
  10.    if ($start) {
  11.  print_r(explode(':',$line));
  12.    }
  13.    if ($line == '!CLIENTS') {
  14.    $start = TRUE;
  15.    echo 'GO';
  16.    }
  17.    elseif ($line == '!SERVERS') {
  18.    $start = FALSE;
  19.    }
  20. }
  21. ?>


 
Sa donne sa:

Code :
  1. GOArray ( [0] => LFFF_CTR [1] => ATC [2] => Aventureclub AIRLINES [3] => ATC [4] => 128.100 [5] => 48.713056 [6] => 2.418888 [7] => [8] => [9] => [10] => [11] => [12] => [13] => [14] => -AventureClub- [15] => 0.0.4.H [16] => 11 [17] => [18] => 6 [19] => 700 [20] => [21] => [22] => [23] => [24] => [25] => [26] => [27] => [28] => [29] => [30] => [31] => [32] => [33] => [34] => [35] => No Atis * 212.227.107.53 Port 8767/LFFF_CTR [36] => [37] => 20140713115211 [38] => DafRadar [39] => 0.0.4.H [40] => 11 [41] => 10 [42] => [43] => [44] => [45] => [46] => ) Array ( [0] => ACF13 [1] => ACF13 [2] => Jean-louis  [3] => PILOT [4] => 122.800 [5] => 29.302073 [6] => -10.647657 [7] => 36796 [8] => 463 [9] => T/E170/F [10] => 350 [11] => GMML [12] => 370 [13] => GMMN [14] => -AventureClub- [15] => 0.0.4.X [16] => 10 [17] => 2014 [18] => [19] => [20] => [21] => I [22] => 0000 [23] => 0000 [24] => 0 [25] => 0 [26] => 0 [27] => 0 [28] => GMME [29] => [30] => SOLNA UA600 ADM UG850 MAK UR722 CSD [31] => [32] => [33] => [34] => [35] => [36] => [37] => 20140713075043 [38] => Daf*FSX [39] => 0.0.4.X [40] => 1 [41] => 10 [42] => [43] => [44] => 1 [45] => 52 [46] => 0 ) Array ( [0] => ACF01 [1] => ACF01 [2] => Denis BOUS [3] => PILOT [4] => 122.80 [5] => 42.697582 [6] => 13.558798 [7] => 37259 [8] => 483 [9] => T/B787/F [10] => 470 [11] => LFRS [12] => 370 [13] => LGAV [14] => -AventureClub- [15] => 0.0.4.X [16] => 12 [17] => 1200 [18] => [19] => [20] => [21] => I [22] => 0000 [23] => 0000 [24] => 0 [25] => 0 [26] => 0 [27] => 0 [28] => NONE [29] => [30] => LUGEN UM616 BEBIX UP860 MEDAM UM730 KUMIN UM730 KODOK UM730 FRZ UM872 VALEN UZ904 PREKI UQ920 PES UM872 DIVKU UP92 BRD UL995 KRK UL53 PIKAD [31] => [32] => [33] => [34] => [35] => [36] => [37] => 20140713095031 [38] => Daf*XP10 [39] => 0.0.4.X [40] => 12 [41] => 10 [42] => [43] => [44] => 198 [45] => 120 [46] => 0 ) Array ( [0] => !SERVERS )

en couleurs,c'est ce que je veux récupérer "vert colonne: Online controleurs champs:ATC,Name,frequency et en bleu  pour une colonne: Online Pilotes champs:Callsign,Name,FS  .;) la liste change en fonction des membres connecter sur le server [3] => ATC   et [4] => PILOT clé primaire pour mes colonnes
Merci de votre aide


Message édité par denis acf01 le 13-07-2014 à 14:13:59
n°2233297
denis acf0​1
Posté le 13-07-2014 à 17:56:46  profilanswer
 

J'ai réalisé :

Code :
  1. $url="http://aventureclub-airlines.fr/whazzup/whazzup.txt";
  2. $file = file($url);
  3. $connect = array();
  4. foreach ($file as $line) {
  5.    $line = trim($line);
  6. if(preg_match("/([^:]+)\:([^:]+)\:([^:]+)/", $line, $matches)){
  7. $connect[] = array($matches[1][1], $matches[2],);
  8. }
  9. }


 
et j'ai une page vide!!! :pt1cable:

n°2233433
Pablo Escr​obarbe
Retour d'exil
Posté le 16-07-2014 à 09:20:04  profilanswer
 

normal que tu ais une page vide, tu n'affiches pas ton tableau là.
Après le foreach mets

 
Code :
  1. echo "<pre>"; var_dump($connect); echo "</pre>";
 

edit : Quand je dis après le foreach c'est après l'accolade fermante.


Message édité par Pablo Escrobarbe le 16-07-2014 à 09:20:36

---------------
Viens jouer aux Rébus sur HFR
n°2233548
denis acf0​1
Posté le 17-07-2014 à 14:59:13  profilanswer
 

Merci pour ton aide sa m'affiche bien le tableau

Code :
  1. array (size=3)
  2.   0 =>
  3.     array (size=2)
  4.       0 => string 'ACF01' (length=5)
  5.       1 => string 'ACF01' (length=5)
  6.   1 =>
  7.     array (size=2)
  8.       0 => string 'ACF13' (length=5)
  9.       1 => string 'ACF13' (length=5)
  10.   2 =>
  11.     array (size=2)
  12.       0 => string '-AventureClub-' (length=14)
  13.       1 => string 'aventureclub-airlines.fr' (length=24)


 
Mais lorsque je choisi   le 4=> et le =>38 , j'ai une erreur car je pense qu'il manque une variable "le 4 et un chiffre 000.000  et le 38 il y a * donc c'est normal mais je ne sais pas mettre comme variable :sarcastic:
 

Code :
  1. if(preg_match("/([^:]+)\:([^:]+)\:([^:]+)/", $line, $matches, $number )){
  2. $connect[] = array($matches[0], $matches[1],$matches[2], $matches[3],$number[4] );


Message édité par denis acf01 le 17-07-2014 à 15:34:33
n°2233628
denis acf0​1
Posté le 18-07-2014 à 13:19:41  profilanswer
 

Re bonjour,  
Après plusieurs tentative, j'ai trouver une solution mais avec une question :na:  

Code :
  1. if(preg_match("/([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)/", $line, $matches )){
  2. $connect[] = array($matches[2], $matches[3], $matches[4] );


 
 
Pour trouver ma ligne je dois, mètres 38 fois  

Code :
  1. \:([^:]+)


:pt1cable:  
y a t'il une solution? Merci
j'ai essayé avec preg_match_all mais je préfère choisir moi même :kaola:


Message édité par denis acf01 le 18-07-2014 à 13:21:18
n°2233629
Pablo Escr​obarbe
Retour d'exil
Posté le 18-07-2014 à 13:24:28  profilanswer
 

fait un preg_match_all et choisis au moment de constuire ton tableau :
 

Code :
  1. $connect[] = array($matches[2], $matches[3], $matches[4], $matches[38]);


---------------
Viens jouer aux Rébus sur HFR
n°2233630
denis acf0​1
Posté le 18-07-2014 à 13:29:53  profilanswer
 

Erreur=>Notice: Undefined offset: 38 in :??:

Code :
  1. f(preg_match_all("/([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)/", $line, $matches )){
  2. $connect[] = array($matches[2], $matches[3], $matches[38] );


Message édité par denis acf01 le 18-07-2014 à 13:44:42
n°2233889
Pablo Escr​obarbe
Retour d'exil
Posté le 23-07-2014 à 10:13:51  profilanswer
 

fait un

Code :
  1. echo '<pre>'; var_dump($matches); echo '</pre>'; die();


 
mets cette ligne juste après le preg_match_all


Message édité par Pablo Escrobarbe le 23-07-2014 à 10:15:24

---------------
Viens jouer aux Rébus sur HFR
n°2233891
denis acf0​1
Posté le 23-07-2014 à 11:52:57  profilanswer
 

j'arrive pas :(  peux tu m'affiché le code complet Merci ;)
 
Par contre après cela, je dois l'envoyer dans ma BDD  auquel il y a des colonnes Callsign, Name,FS  et comme je débute j'ai du mal  :sweat:  
Peux-tu m'aidé Merci


Message édité par denis acf01 le 23-07-2014 à 12:02:37
n°2233997
Pablo Escr​obarbe
Retour d'exil
Posté le 24-07-2014 à 14:10:38  profilanswer
 

Code :
  1. if(preg_match_all("/([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)/", $line, $matches )){
  2.     echo '<pre>'; var_dump($matches); echo '</pre>'; die();
  3. }


---------------
Viens jouer aux Rébus sur HFR
n°2233999
Pablo Escr​obarbe
Retour d'exil
Posté le 24-07-2014 à 14:16:54  profilanswer
 

ah mais c'est ton preg_match_all qui va pas


---------------
Viens jouer aux Rébus sur HFR
n°2235378
denis acf0​1
Posté le 11-08-2014 à 13:41:24  profilanswer
 

Re bonjour, j'ai enfin réussi à obtenir mon script mais j'ai un petit souci impossible le lire toute la chaine de caractère! le dois récupérer une valeur mais j'ai une erreur offset
comment faire? merci

 

Code :
  1. $bdd  = NEW PDO('mysql:host=localhost;dbname=server_statut','root','', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
  2. $url  = "http://aventureclub-airlines.fr/whazzup/whazzup.txt";
  3. $file = file($url);
  4. $connect = array();
  5. foreach ($file as $line)
  6. {
  7.     $line = trim($line);
  8.     if(false != preg_match("/([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)\:([^:]+)/", $line, $matches))
  9.     {
  10.         $connect[] = array(
  11.      $matches[1],
  12.             $matches[2],
  13.             $matches[3],
  14.             $matches[12],
  15.             $matches[14],
  16.            $matches[10],
  17.             $matches[39],
  18.         );
  19.     }
  20. }


Message édité par denis acf01 le 12-08-2014 à 06:49:27
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Fichier .txt => Tableau Array() ?

 

Sujets relatifs
lancer une page php avec un fichier batouvrir un fichier dans un repertoire
Parcours d'un tableau de charlogiciel de fichier d'aide (type .hlp)
[PHP] Lire les données d'un tableau[Résolu] parser un fichier xml en ignorant le DTD
Tri d'un fichier texte par dateremplissage d'un tableau avec une boucle while
JS/PHP comment récupérer la valeur d'une case de tableau?Taille des lignes de tableau
Plus de sujets relatifs à : Fichier .txt => Tableau Array() ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR