Rajouter une ligne dans une section d'un fichier .ini

CokeInMyNose Messages postés 3 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 12 juin 2007 - 11 juin 2007 à 15:40
CokeInMyNose Messages postés 3 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 12 juin 2007 - 12 juin 2007 à 11:17
Bonjour à tous, voila j'ai un projet à faire qui resemble à ceci:


Un porte-document numérique est un espace web sur lequel on peut
stocker et partager des documents (bureautiques, images, archives,
...), afin d'y accéder d'où que l'on soit.


Mais voila sans base de données donc il faut que je gère les droits de
chque utilisateur avec un fichier .ini qui se trouvera dans chaque
dossier. Il se composera ainsi:


[dossier]


nom="perou 2007"


visibilite=public


description="photos de vacances"


[droits]


DSC_001.jpg = public


DSC_002.jpg = public


DSC_003.jpg = public


DSC_004.jpg = prive


DSC_005.jpg = prive


[descriptions]


DSC_001.jpg = "montagne"


DSC_002.jpg = "moustiques"


DSC_003.jpg = "lac"


DSC_004.jpg = "moi"


DSC_005.jpg = "encore moi"

mais dans mon projet je dois permettre à un utilisateur d'uploader
un fichier dans un dossier et le problème c'est que je ne sais pas
comment faire pour rajouter une ligne dans un section du fichier ini?


Avez vous la réponse ou une idée ??? merci

5 réponses

vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
11 juin 2007 à 17:29
Saell og blesuð


Est ce que le system ini est impose ? parce que sans cela il serait plus simple d utiliser xml avec simplexml

Vilhjálms
Sigurðsdóttir aka Frëyjá
0
DiGhan Messages postés 239 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 3 juin 2010 1
11 juin 2007 à 18:41
Hello,

je ne pense pas que PHP est composé d'outils permettant de manipuler des fichiers INI au même titre que DOM permet de manipuler des fichiers XML. A mon avis, tu vas devoir réaliser ton propre parsing (ou analyse de données).
0
CokeInMyNose Messages postés 3 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 12 juin 2007
11 juin 2007 à 21:02
oui cela est imposer mais je pense que je vais lire mon fichier ini avec parse_ini_file et je rajouterai les données à ajouter dans mon tableau puis je re-écrirais l'ensemble de mon fichier ini. C'est sur c'est pas top mais bon jfais comme je peux en tout cas merci pour vos réponses
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 19
12 juin 2007 à 08:15
Alors je vais peut etre te dire une chose bête, mais perso j'ai du faire cela de mon coté. J'ai du créer une série de méthode pour l'objet 'fichier' comme
addLine(text,numLine) --> rajoute du texte à la ligne x
endLine(chapter) --> renvoie le numéro de la dernière ligne d'un chapitre
getValue(chapter,name) --> renvoie la valeur d'un champ d'un chapitre
updValue(chapter,name,value) --> modifie la valeur d'un champ d'un chapitre et si name inexistant alors addLine
etc..
Désolé je n'ai trouvé que cette méthode.
S.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CokeInMyNose Messages postés 3 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 12 juin 2007
12 juin 2007 à 11:17
Voila ma fonction elle marche en réfléchissant un peu :

<?php

$file_ini= parse_ini_file("droits.ini",true);

foreach($file_ini as $section => $element)
  {  foreach($element as $files => $options)
   }

$fichier=fopen('./droits.ini', 'w+');   // Ouvre le fichier .ini Mode: Lecture/ Ecriture et écrase l'ancien

$saut="\r\n";

$name_file='chaine';   
$droits='PUBLIC';      
$descriptions='PHP Puissant'; 

$file_ini['droits']["$name_file"]= $droits;
$file_ini['descriptions']["$name_file"]= $descriptions;

foreach($file_ini as $section => $element)
{
    fwrite($fichier, "[$section]");
    fwrite($fichier, $saut);
    foreach($element as $files => $options)
        {
        $chaine=$files ." = ". $options;
        fwrite($fichier, $chaine);
        fwrite($fichier, $saut);
        }
        fwrite($fichier, $saut);
 }
?>
0