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
Bonjour,

ayant un niveau faible en php, j'aurais besoin d'un petit coup de main pour le parsage de mon fichier:

server= monserveur
login= monlogin
db_pass= monpass
db_name= nomdb
db_type= typebd

voila j'aimerais recuperer les informations de ce fichier texte dans des variables, et ce en utilisant les fonctions php.

quelqu'un sait comment s'y prendre? :)

merci d'avance! :)

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

<?

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 :)
1
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
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
0
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
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 :)
0