begin process at 2012 05 27 19:04:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > LIRE UNE DATABASE EN TXT

LIRE UNE DATABASE EN TXT


 Information sur la source

Note :
7 / 10 - par 3 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de données Niveau :Débutant Date de création :17/05/2005 Vu :4 272

Auteur : DarkM60

Ecrire un message privé
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

Bon bah voila c'est pas forcément tres pratique dans certain cas d'utiliser une base SQL, dumoins pour les choses pas tres importantes, ou alors si votre hébergeur ne le propose pas.

De plus il y a certaines personnes qui préfèrent logger dans du txt.. pour pas encombrer la DB en cas de grands flux d'infos !
La c'est juste pour lire. Je mettrai peut etre comment écrire, mais c'est plus facile.
(Suffit d'écrire en mode a(ajout) et de faire une nouvelle ligne ^^).

Source

  • <?
  • /* Exemple de db.txt :
  • DarkM Miaouu Tristan 5
  • Jojo Dupont Jacques 2
  • Niak Ceci_est_un_test Pierre 3
  • Mdr_quoi_! Mon_nom Mon_prénom Mon_level
  • Cela affichera :
  • Pseudo : DarkM, Nom : Miaouu, Prénom : Tristan, Niveau : 5 .
  • Pseudo : Jojo, Nom : Dupont, Prénom : Jacques, Niveau : 2 .
  • Pseudo : Niak, Nom : Ceci est un test, Prénom : Pierre, Niveau : 3 .
  • Pseudo : Mdr quoi !, Nom : Mon nom, Prénom : Mon prénom, Niveau : Mon level.
  • */
  • // Lit le fichier texte
  • $lines = file ('db.txt');
  • // Affiche toutes les lignes
  • foreach ($lines as $line_num => $line) {
  • $info = explode(" ",$line);
  • foreach ($info as $info_num => $value)
  • {
  • $info[$info_num] = str_replace("_"," ",$value);
  • }
  • echo 'Pseudo : '.$info[0].', Nom : '.$info[1].', Prénom : '.$info[2].', Niveau : '.$info[3].'.<br>';
  • }
  • ?>
<?
/* Exemple de db.txt :
DarkM Miaouu Tristan 5
Jojo Dupont Jacques 2
Niak Ceci_est_un_test Pierre 3
Mdr_quoi_! Mon_nom Mon_prénom Mon_level

Cela affichera :
Pseudo : DarkM, Nom : Miaouu, Prénom : Tristan, Niveau : 5 .
Pseudo : Jojo, Nom : Dupont, Prénom : Jacques, Niveau : 2 .
Pseudo : Niak, Nom : Ceci est un test, Prénom : Pierre, Niveau : 3 .
Pseudo : Mdr quoi !, Nom : Mon nom, Prénom : Mon prénom, Niveau : Mon level.
*/

// Lit le fichier texte
$lines = file ('db.txt');

// Affiche toutes les lignes
foreach ($lines as $line_num => $line) {
   $info = explode(" ",$line);
   foreach ($info as $info_num => $value)
   {
   $info[$info_num] = str_replace("_"," ",$value);
   }
   echo 'Pseudo : '.$info[0].', Nom : '.$info[1].', Prénom : '.$info[2].', Niveau : '.$info[3].'.<br>';
}
?>

 Conclusion

Explication :

On ouvre le fichier texte.

On affiche ligne par ligne :
On détache les élements, et on les mets dans un tableau !

Puis on remplace les "_" par des " ". (Bah vi sinon comment tu veut mettre des espaces, vu qu'il sert de séparateur ?! :) mais bon suffit de changer les espaces en _ quand on rentre une info dans le fichier texte.)

>> Note : On peut améliorer ce script avec les expressions régulières. On pourrait imaginer une mise en forme différente, du style "Nom","Pseudo"..

Et apres bah on affiche ;).

On peut donc gerer une base de donneés comme ça, biensure pour certaines choses c'est plus pratique avec du SQL je l'admet.. Mais pour logger des ips je trouve ça largement mieux ! Surtout pour exporter.

>> note : $line_num est le numero de la ligne, ca peut toujours être utile..

Et puis il n'est pas tres difficile de faire un script pour convertir en SQL ;).

Attention tout de fois quand vous rentrez des infos dans le fichier texte, aux balises ("<",">" etc..), Vous pouvez utiliser des fonctions comme htmlentities ou htmlspecialchars pour prevenir des effets néfaste !

J'espere que ca aura été utile a quelques personnes ;)


 Sources du même auteur

Source avec Zip SCRIPT D'ENVOI DE SMS DEPUIS SFR
Source avec Zip KORREKTOR, FAÎTES TRAVAILLER VOS VISITEURS !
ORDRE DES LETTRES DANS UN MOT, ETUDE DE L'UNIVERSITÉ DE CAMB...
TRI PAR INSERTION
Source avec une capture BARRE DE POURCENTAGE ADAPTABLE (LIBRAIRIE GD UTILISÉE)

 Sources de la même categorie

Source avec Zip ORM : DAO, ACTIVERECORD ET DBLIST par Reldan
Source avec une capture CET EXTRAIT PERMET D'AJOUTER DANS UN TABLEAU UNE AGRÉGATION ... par Denis007
EXPORT DE BASE AU FORMAT CSV par remib74
Source avec Zip RECHERCHE DES DOUBLONS DANS UNE TABLE MYSQL EN SÉLECTIONNANT... par aladec2007
[CRON] INSERT ON DUPLICATE KEY UPDATE par pierreSabatier

Commentaires et avis

Commentaire de massacr le 18/05/2005 13:26:24

C'est pas vraiment une source. C'est un tout petit tutoriel, qui est expliqué sur tous les sites de PHP. Pour etre utile, il faudrait que tu mette un truc complet sur les fichiers. Lire, Ecrire, Suprimer, Ecrire et effacer, enfin, il y a plein de truc à expliquer, mais là, c'est très limité.

Commentaire de coucou747 le 18/05/2005 15:58:59 administrateur CS

avec une class, ça pourait être pas mal, mais la...

Commentaire de Arnauti le 21/05/2005 13:53:52

Salut, il y a un truc que j'ai jamais pigé, c'est quoi une class ??


A++

Commentaire de coucou747 le 21/05/2005 14:01:38 administrateur CS

cf phpdebutant ou php.net... une class est une definition d'objet (nouveau typoe)

Commentaire de Arnauti le 21/05/2005 15:13:48

Salut coucou747 merci j'ai regarder php debutant car site simple ...

J'ai commencer à lire mais j'ai pas tout lu ...

Merci et A++

Commentaire de massacr le 21/05/2005 23:35:08

Une classe, j'ai compris ca comme une fonction évoluée, qui se comporte comme un objet, et qui peut emmagasiner un paquet d'infos. C'est assez complexe, ca peut etre utile, mais je ne les utilise encore que très peu, par rapport au fonctions.

Bon, n'étant pas un pro en la matière, contredisez moi si je dis une betise.

Commentaire de coucou747 le 22/05/2005 09:41:16 administrateur CS

c'est un peu plus simple de faire une base en php, on la charge en l'incluant...

Commentaire de brouno le 16/09/2005 06:43:35

Bonjour .
Le code ne comporte aucune erreur meme a E ALL , il est compact , il marche , et de plus il est trés simple .

Commentaire de christian33 le 16/10/2005 15:49:03

Bonjour
mon fichier txt est fait comme ceci
Speudo points

j'aimerais savoir s'il y'a possibilite de classer les membres par points ,du 1er au dernier.

Commentaire de Konkerouf le 26/10/2006 23:59:03

Pour faire de la bdd fichier, il est plus sage de passer par du xml.
Ton truc c'est bien, mais aucune gestion de clef étrangères, de dépendances, de contrôles d'intégrité etc...

Sinon pour la discussion sur ce qu'est une classe:

-Pour comprendre ce qu'est une classe, faut déja pas aller sur des sites de php mais sur des sites qui expliquent la programmation orientée objet de manière générale.

Ensuite, php pour apprendre à programmer est un très mauvais langage. Il mélange tout et n'importe quoi, il n'a aucune rigueur (ex, on peut lire une variable non initialisée). Je te conseille plutot java si tu veux être bien encadré par le langage ou C++ si t'es motivé a te casser le cul sur des choses bien difficiles (mais tellement formatrices).

Commentaire de coucou747 le 27/10/2006 13:26:12 administrateur CS

"choses bien difficiles"
commence la programmation par du java, et tu écriras des choses dont tu ignores le sens (dans mon école d'ingé, les deuxièmes années ne savent pas pourquoi ils tapent : class... public void main...) bref, alors qu'en C ou C++, tu sais ce que tu fais, dès le départ, tu peux programmer non orienté objet, et l'apprentissage est plus simple...
La surcharge d'opérateurs est interessante en Cpp aussi, j'ai jamais fait ça en java, mais c'est pas possible en php...

Le php, pour débuter c'est pas bon, le C, c'est mieux... le C++ comme troisième langage pourquoi pas : un langage de script pour s'ammuser, du C pour s'améliorer et exploiter à fond sa bète... et du C++ pour continuer de s'améliorer coté théorie objet...

Commentaire de Konkerouf le 28/10/2006 02:05:52

Normal, pas de surcharge d'opérateurs possible en java, de même pour l'héritage multiple au sens propre du terme.

Si tu fais les choses correctement, tu comprends ce que tu écris en Java. Certes on a vite fait des choses très crades en java mais ca reste vrai pour le C++ et encore pire pour le php.

Ruby & Ruby on Rails ftw =)

Commentaire de coucou747 le 29/10/2006 12:34:30 administrateur CS

class Vecteur{...}
Vecteur a, b, c;
float d;
a.set(x, y, z);
b.set(x, y, z);
c=a*2;
c=b+a;
c=b^a;
d=b*a;
bref... pour les barycentres c'est pas top, mais pour le reste, c'est géant...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,045 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales