Parser un fichier avec php

rixcomm Messages postés 3 Statut Membre -  
rixcomm Messages postés 3 Statut Membre -
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! :)
Configuration: Linux
Firefox 1.0.7

3 réponses

  1. rixcomm Messages postés 3 Statut Membre 1
     
    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
  2. guimton Messages postés 89 Statut Membre 10
     
    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
  3. rixcomm Messages postés 3 Statut Membre 1
     
    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