Parser un fichier avec php
Fermé
rixcomm
Messages postés
3
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
7 avril 2008
-
3 avril 2008 à 10:30
rixcomm Messages postés 3 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 7 avril 2008 - 7 avril 2008 à 17:04
rixcomm Messages postés 3 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 7 avril 2008 - 7 avril 2008 à 17:04
A voir également:
- Parser un fichier avec php
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Fichier host - Guide
3 réponses
rixcomm
Messages postés
3
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
7 avril 2008
1
7 avril 2008 à 17:04
7 avril 2008 à 17:04
bon en fait j'ai changé de méthode, je suis passé à un développement objet (plus adapté de nos jours)
voila donc mon fichier à l'etat final, a savoir qu'il doit pouvoir gerer une base postgreSQL ou mySQL.
voila, si j'ai fait une erreur ou si vous avez des questions posez les moi :)
voila donc mon fichier à l'etat final, a savoir qu'il doit pouvoir gerer une base postgreSQL ou mySQL.
<? class parser { /*attributs*/ public static $server; public static $login; public static $db_pass; public static $db_name; public static $db_type; public static $db_pref; public static $tabinfos; /*constructeur*/ function parser($tabinfos) { $this->server=$tabinfos[0]; $this->login=$tabinfos[1]; $this->db_pass=$tabinfos[2]; $this->db_name=$tabinfos[3]; $this->db_type=$tabinfos[4]; $this->db_pref=$tabinfos[5]; } /* le parser. action: ouvre un fichier et recupere les infos importantes */ function file_parser() { $pointeur=fopen("../include/database","r"); if ($pointeur) { /* tant qu'on est pas à la fin du fichier on avance le pointeur et on recupère tout dans $infos_bd */ while (!feof($pointeur)) { $infos_bd = fgets($pointeur); } fclose($pointeur); /*remplace la balise retour a la ligne par £ */ str_replace("\n","£",$infos_bd); /*list($server,$login,$db_pass,$db_name,$db_type)*/ /*recupération des données par découpage du string*/ $tabinfos= split('[=£]',$infos_bd); /*le if permettra dans la lib config de définir le prefixe a utiliser (postgreSQL ou mySQL) */ if ($tabinfos[4]=="mysql") { $tabinfos[5]="mysql"; return ($tabinfos); } else if ($tabinfos[4]=="postgreSQL"; { $tabinfos[5]="pg"; return ($tabinfos); } /* si la donnée n'est pas valable ou non accessible, renvoie null et demande à l'utilisateur de vérifier la syntaxe du fichier*/ else { echo("les variables nécessaires sont introuvable, vérifiez la syntaxe de votre fichier(de la forme 'type=variables'"); return(null); } /* si l'on a pas pu ouvrir le fichier, retourne null */ else { return (null); } } } ?>
voila, si j'ai fait une erreur ou si vous avez des questions posez les moi :)
guimton
Messages postés
89
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
10 avril 2008
10
3 avril 2008 à 10:49
3 avril 2008 à 10:49
perso je pense qu'il ne vaut mieux pas stocker ce genre de données sensibles dans un fichier txt...
il y aura trop de faille de sécu.
après fais comme tu veux...
regarde les fonctions fopen et fread sur php.net
https://www.php.net/manual/fr/function.fopen.php
il y aura trop de faille de sécu.
après fais comme tu veux...
regarde les fonctions fopen et fread sur php.net
https://www.php.net/manual/fr/function.fopen.php
rixcomm
Messages postés
3
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
7 avril 2008
1
3 avril 2008 à 13:18
3 avril 2008 à 13:18
hop merci pour ton aide, voila ma version, ca vous parait correct? :)
// ici on ouvre le fichier contenant les infos
$infos_bd=fopen("monfichier","r");
// on remplace les balises retour a la ligne par un caractère qu'on a peu de chance de rencontrer dans le texte
str_replace("\n","£",$infos_bd);
// on recupère ce qui se trouve entre = et £ (l'élement remplacé au dessus donc :) ) dans les variables $server,$login etc etc...
list($server,$login,$db_pass,$db_name,$db_type)= split('[=£]',$infos_bd);
p.s.: je commente pour que l'on puisse suivre ma demarche au cas ou :)
// ici on ouvre le fichier contenant les infos
$infos_bd=fopen("monfichier","r");
// on remplace les balises retour a la ligne par un caractère qu'on a peu de chance de rencontrer dans le texte
str_replace("\n","£",$infos_bd);
// on recupère ce qui se trouve entre = et £ (l'élement remplacé au dessus donc :) ) dans les variables $server,$login etc etc...
list($server,$login,$db_pass,$db_name,$db_type)= split('[=£]',$infos_bd);
p.s.: je commente pour que l'on puisse suivre ma demarche au cas ou :)