Sauvegarder sans Base de Données [Résolu]

cs_piep14 345 Messages postés lundi 15 mars 2004Date d'inscription 13 mai 2011 Dernière intervention - 17 oct. 2005 à 18:16 - Dernière réponse : cs_piep14 345 Messages postés lundi 15 mars 2004Date d'inscription 13 mai 2011 Dernière intervention
- 20 oct. 2005 à 10:01
Bonsoir !!! J'aimerais sauvegarder des valeurs mais je ne sais
pas quoi utiliser comme fichier sachant que je ne peux pas me servir de
la base de données.



Ce que je veux faire :



J'ai un tableau qui doit se remplir selon le fichier de données. Dans
ce fichier, j'aurais "lenomdunetache" et la valeur de la tache "0 ou 1"
correspondant a faite ou pas !!!

Exemple :

tache1 = 1 (tache terminée)

tache2 = 0 (tache non faite)



Voila, si vous voulez plus de renseignement, je suis la :D



Merci
Afficher la suite 

Votre réponse

40 réponses

Meilleure réponse
cs_piep14 345 Messages postés lundi 15 mars 2004Date d'inscription 13 mai 2011 Dernière intervention - 20 oct. 2005 à 10:01
3
Merci
Je conclure le sujet avec une réponse qui marche impécable :

<?php

/**** Initialisation ****/
/************************/
class Configuration {

var $_vars;
var $ON;
var $OFF;

function Configuration() {
$this->_vars = array();
$this->ON = "1";
$this->OFF = "0";
}

function load($filename) {
if (!file_exists($filename)) {
die ("Le fichier $filename n'existe pas !");
} else {
$lines = file($filename);
foreach($lines as $line) {
$pos = strpos($line, '=');
if ($pos !== false) {
$this->_vars[trim(substr($line, 0, $pos))] = trim(substr($line, $pos+1));
}
}
}
}

function change($array) {
foreach($array as $key => $value) {
if (isset($this->_vars[$key])) {
$this->_vars[$key] = ($value==="ON")?$this->ON:$this->OFF;
}
}
}

function save($filename) {
$f = fopen($filename, 'w');
foreach($this->_vars as $key => $value) {
fwrite($f, $key.' = '.$value."\n");
}
fclose($f);
}

function dump() {
return var_export($this->_vars);
}

function toHtml() {
$output = '';
if (count($this->_vars) == 0) {
$output .= '
Fichier de conf vide
';
} else {
$output .= '<form action="" method="POST">';
$output .= ' Key |Value |';
foreach($this->_vars as $key => $value) {
$output .= '----
'.$key.', OFF?"ON":"OFF").'" />, ';
}
$output .= '
';
$output .= '</form>';
}
return $output;
}
}

$conf =& new Configuration();

$conf->load("fichier.txt");


/**** Traitement requete ****/
/****************************/
if (isset($_REQUEST['vars'])) {
$conf->change($_REQUEST['vars']);
$conf->save("fichier.txt");
}



/**** Affichage ****/
/*******************/
?>
<html>

<?php echo $conf->toHtml(); ?>

</html>


Je veux vraiment vous remercier, vous n'avais jamais abandonnée pour essayer de m'aider au maximum. Je te remercie sincèrement Anthomicro ainsi que les autres ayant participé au sujet.

Bonne continuation !!
Vincent

Merci cs_piep14 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_piep14
cs_sjon 861 Messages postés mardi 26 mars 2002Date d'inscription 29 novembre 2006 Dernière intervention - 17 oct. 2005 à 18:51
0
Merci
Sael og blesud



Bah xml par exemple ou encore un simple csv ou txt

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón
Commenter la réponse de cs_sjon
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 17 oct. 2005 à 18:54
0
Merci
cherches fopen, fputs et fclose...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Commenter la réponse de coucou747
Teclis01 1423 Messages postés mardi 14 décembre 2004Date d'inscription 29 décembre 2012 Dernière intervention - 17 oct. 2005 à 18:55
0
Merci
hum une sauvegarde dans un fichier txt ca te convient?
si oui renseigne toi sur les fonctions fwrite fread...
ensuite penses a mettre un separateur entre chaque données! Ensuite il faut faire un explode et ensuite c'est une boucle toute bete et mechante...
Si tu as besoin de plus d'explications n'hesites pas!


-------------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Commenter la réponse de Teclis01
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 17 oct. 2005 à 19:01
0
Merci
Salut,



perso je te conseillerais de mettre ça dans un fichier texte tout
simple, avec une instruction par ligne comme tu as fait dans ton
exemple mais comme ceci :



instruction=valeur;



ensuite tu fais un explode sur chaque ligne avec le signe égal, tu récupères l'instruction et sa valeur, et tu la traites ;-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
cs_piep14 345 Messages postés lundi 15 mars 2004Date d'inscription 13 mai 2011 Dernière intervention - 17 oct. 2005 à 20:02
0
Merci
Je penses que l'idée de Anthomicro à l'air pas mal. Auriez vous un exemple ou un tuto ? Merci de votre aide les gars !
Commenter la réponse de cs_piep14
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 17 oct. 2005 à 20:14
0
Merci
bah pour récupérer toutes les lignes :



$fichier=file('fichier.txt');

$i=0;

$nb=count($fichier);



while($i<$nb)

{

$ligne=explode('=',$fichier[$i]);



//instruction

echo $ligne[0],'
';

//valeur

echo $ligne[1];

$i++;

}

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 17 oct. 2005 à 20:17
0
Merci
personellement, pour récupérer mes variables, je faisais un include quand je n'utilisais pas mysql...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Commenter la réponse de coucou747
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 17 oct. 2005 à 20:20
0
Merci
ah oui si tu parles de variables c'est différent

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
cs_piep14 345 Messages postés lundi 15 mars 2004Date d'inscription 13 mai 2011 Dernière intervention - 17 oct. 2005 à 20:30
0
Merci
Donc j'ai repris ta méthode Anthomicro !!! Comment je fais si je veux mettre a jour une valeur dans le fichier texte. Disons que dans le fichier, j'ai :

tache1 = 1
tache2 = 1
tache3 = 0

Et je veux mettre a jour tache2 = 1

Merci de votre aide !
Commenter la réponse de cs_piep14
cs_piep14 345 Messages postés lundi 15 mars 2004Date d'inscription 13 mai 2011 Dernière intervention - 17 oct. 2005 à 20:48
0
Merci
En cherchant sur le Net, il est dit qu'il vaut mieux utiliser parse_ini_file car il est plus portable face a celui utilisé précédement !!!!

Qu'en pensez vous et auriez vous des exemples ? Merci
Commenter la réponse de cs_piep14
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 17 oct. 2005 à 21:53
0
Merci
bah oui si ce sont des paramètres ma méthode n'est pas appropriée,
perso je pensais que tu faisais une sauvegarde d'une grande quantité de
données.



la meilleure méthode reste encore de foutre tes variables dans un fichier que tu éditeras à l'aide d'expressions régulières.



$variable='valeur';



tu ouvres le fichier tu récupères en php le contenu de la variable
$variable et tu peux lui affecter un autre contenu avec un fopen en
mode w+
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 18 oct. 2005 à 09:28
0
Merci
Ben moi j'utiliserais plutôt xml, dans ce cas.

Mais qui en doutait ? ;-)



La raison : ça s'édite facilement justement, on met à jour des valeurs très simplement.

Et puis si on parle portabilité... ;-)



Après, parse_ini_file, pourquoi pas, mais c'est pas super intuitif à utiliser je trouve.
Commenter la réponse de malalam
cs_piep14 345 Messages postés lundi 15 mars 2004Date d'inscription 13 mai 2011 Dernière intervention - 18 oct. 2005 à 16:31
0
Merci
Anthomicro, j'ai repris ton code mais je ne sais pas comment je fais pour effectuer une mise a jour d'une valeur dans le fichier !!!

J'ai fais comme code :

CODE :
<?
$fichier=file('fichier.txt');
$i=0;
$nb=count($fichier);
echo "\";
while($i<$nb)
{
echo \"----
\";
$ligne=explode('=',$fichier[$i]);
echo \"$ligne[0], ";

if($ligne['1']=="1")
echo "OK";
else
echo "NO";
echo ", \";
$i++;
echo \"\";
}
echo "
";
?>

Et dans le fichier, j'ai :
tache1=1
tache2=0

Et a l'affichage, j'ai :
tache1 NO
tache2 NO

Donc déjà, il y a un léger probleme !!!
Merci
Commenter la réponse de cs_piep14
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 18 oct. 2005 à 16:46
0
Merci
Bon en fait j'avais utilisé ce code pour un projet TPE :



en fait j'avais un fichier "fonctions.inc.php" et dedans je voulais
soit activer les logs via une interface soit les désactiver. Plutôt que
de faire appel à la base j'ai utilisé un fichier texte qui contient du
code mais ce qui est important :



$activer_logs=1; //ou $activer_logs=0;



pour lire la valeur bah vu que c'est une variable tu fais une inclusion
du fichier et mettons que tu mettes $valeur_logs=0; //désactive les logs



$fichier=file_get_contents('./classes/fonctions.inc.php');



$fichier=preg_replace('`\$activer_logs=(0|1);`','\$activer_logs='.$valeur_logs.';',$fichier);



ecrire_fichier('w+','./classes/fonctions.inc.php',$fichier); //imitation de la fonction fopen en mode w+ plus fputs et fclose...


<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
cs_piep14 345 Messages postés lundi 15 mars 2004Date d'inscription 13 mai 2011 Dernière intervention - 18 oct. 2005 à 16:57
0
Merci
Oulala, c'est pas très clair tout ca pour moi, désolé :D
Commenter la réponse de cs_piep14
cs_piep14 345 Messages postés lundi 15 mars 2004Date d'inscription 13 mai 2011 Dernière intervention - 18 oct. 2005 à 17:28
0
Merci
Moi j'ai fait ca pour le moment :

CODE :
<?
if(isset($_POST['submit']))
{
echo "La mise a jour dans le fichier !!! Mais comment :D";
}

$fichier=file('fichier.txt');
$i=0;
$nb=count($fichier);
echo "\";
while($i<$nb)
{
echo \"----
\";
$ligne=explode('=',$fichier[$i]);
//var_dump($ligne);
echo \"$ligne[0], ";

if(trim($ligne[1])=="1")
echo "<form action='' method='POST'></form>";
else
echo "<form action='' method='POST'></form>";
echo ", \";
$i++;
echo \"\";
}
echo "
";
?>

Si tu peux m'aider a partir de ca !!
Commenter la réponse de cs_piep14
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 18 oct. 2005 à 17:34
0
Merci
tu t'embêtes pour rien là... regarde un peu en quoi consiste une des solutions possibles :



ouvrir le fichier sous forme de tableau =>



$fichier=file('fichier.txt');



=> parser le contenu de toutes les lignes (récupérer via explode la variable et sa valeur)

=> si tu veux modifier la variable bah t'ouvres le fichier en écriture,et tu fais un preg_replace dessus.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
cs_piep14 345 Messages postés lundi 15 mars 2004Date d'inscription 13 mai 2011 Dernière intervention - 18 oct. 2005 à 20:36
0
Merci
Merde, j'arrive pas a appliquer preg_replace !!! Tu peux me montrer s'il te plait !!!
Commenter la réponse de cs_piep14
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 18 oct. 2005 à 21:13
0
Merci
t'en as pour un moment avec les normes sur les expressions régulières,
mais franchement, ça en vaut la peine... enfin, pas sur un si petit
projet....



Pourquoi ne pas écrire tes variables sous la forme :



$a="salut";

$v=false;

$tab=array();

$tab[]="moi";


ensuite, un simple include('monfichier'); et c'est réglé...


In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Commenter la réponse de coucou747

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.