begin process at 2012 05 31 19:14:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Variable a l'intérieur d'un fichier texte... est-ce possible?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Variable a l'intérieur d'un fichier texte... est-ce possible?

jeudi 27 août 2009 à 19:17:07 | Variable a l'intérieur d'un fichier texte... est-ce possible?

jzeel

Bonjour à tous!

Je sais à la base comment lire et écrire dans un fichier texte, mais j'ai une liste de membre dans ma BD et chaque membre ont un code membre et une note de 1 à 1000. j'aimerais pouvoir incrémenté une note en fonction du code de membre.

Est-ce possible d'avoir dans mon txt des lignes comme ceci :

$code=1001
$note=5
$code=1002
$note=10
$code=1003
$note=15
$code=1004
$note=5
etc..

et ensuite par un code php aller directement dans le code membre 1003 pour augmenter la note à 16.

Est-ce possible? merci de votr aide


Jzeel

jeudi 27 août 2009 à 23:27:50 | Re : Variable a l'intérieur d'un fichier texte... est-ce possible?

kohntark

Membre Club


Salut,

.. tout (ou presque) est possible.
Mais il faut en tout premier lieu se poser la question : "est ce une bonne idée ?"
Je pense comprendre ce que tu souhaites faire au niveau du fichier texte, par contre je ne comprends pas pourquoi tu n'utilises pas ta DB pour ça ?? C'est une DB texte ??


Tu devrais sans doute utiliser du XML pour ce fichier, mais même en simple texte avec le format que tu proposes ça ne pose pas de pb, ... reste à savoir combien pèse ce fichier (??)


Cordialement,

Kohntark -

vendredi 28 août 2009 à 06:09:00 | Re : Variable a l'intérieur d'un fichier texte... est-ce possible?

jzeel

J'y ai pensé, mais le problème c'est que sur la page php j'affiche un une animation flash(swf) qui va lire un txt qui contient 2 variable: la note du membre et le nombre de personne qui ont participé...

et c'est la mon problème, j'ai pensé a stocké la note et le nombre de personne participant dans la BD, mais Flash a ce que je sache(a moins que je me trompe ne peut pas venir lire dans la BD). Ainsi, je voulais savoir est ce qu'il y avait un moyen que par du code php venir prendre les données de la bd(ce qui est facile) et le mettre dans txt qui contient 2 variable: note et nb_participant (ce qui est difficile)?

A moins d'avoir un autre moyen, je suis ouvert....


Jzeel

vendredi 28 août 2009 à 09:41:08 | Re : Variable a l'intérieur d'un fichier texte... est-ce possible?

nautilus99

Bonjour,

Pour l'import de ton texte en tableau ou base de données, le plus simple est le format CSV qui est le plus facile à importar sans avoir besoin de se créer un analyseur complet. XML correspondrait aussi.

Bien qu eflash ne puisse lire directement le sbases de données, il permet du JavaScript et du passage de paramètres. Avec un stockage en base de données et une simple requête JSON ou JQuery, tu peux via PHP interroger la base de données et renvoyer le résultat correspondant.

ça évite les usines à gaz.

lundi 31 août 2009 à 11:32:31 | Re : Variable a l'intérieur d'un fichier texte... est-ce possible?

jemil75

Hello,
Les expressions régulières sont tes amies, avec un petit coup de preg_replace_callback tu devrais t'en sortir facilement. Un truc du style (à la truelle):

$text = preg_replace_callback(
"#(\$code=1003(\n|\r\n)?\$note=)[0-9]{1,2}#',
create_function(
'$matches',
'return ($matches[1]."16");'),$text);

$text étant le contenu de ton fichier... Après, si tu veux automatiser la fonction, tu devras remplacer la note (ici 16) par une variable. create_fonction() ne te permettra pas d'entrer une variable extérieure. Le truc, c'est d'écrire la commande qui va bien dans une chaine et de l'évaluer ensuite avec eval(). J'ai testé dans un cas similaire, ça marche impeccable! Bon courage!

lundi 31 août 2009 à 17:55:07 | Re : Variable a l'intérieur d'un fichier texte... est-ce possible?

jzeel

Pour être franc avec vous je suis un peu melanger dans le cas de nautilus99 j'ai jamais utilisé du CSV ou des requête JSON ou JQuery je vois QUOI faire mais pas COMMENT le faire... surtout avec aucun exemple cela aide pas.

Dans le cas de jemil75, je comprend qu'a moitié, mettons que chaque document porte le nom de code du membre (1003.txt) et à l'intérieur j'ai juste une variable $note= *** J'imagine qu'il faudra que j'ouvre mon fichier txt pour écrire dedans du genre ...

(

Code PHP :


$code = 1003;
$fp = fopen("$code.txt", "r")
while (!feof($fp)) {
$text = fgets($fp);
$text = preg_replace_callback "#(\$note=)[0-9]{1,2}#', create_function(
'$matches', 'return ($matches[0]."16");'),$text);
} fclose($fp); ?>


Est-ce que $matches[0] fait reference la la variable $note du document texte... sinon, je ne comprend pas cette ligne: 'return ($matches[1]."16"); et je ne vois vois pas en quel sens la fonction eval pourrait m'être utile.

Merci!

Jzeel

lundi 31 août 2009 à 19:34:28 | Re : Variable a l'intérieur d'un fichier texte... est-ce possible?

jemil75

En fait, mon exemple ne vaut que si tu as toutes tes données dans un même fichier txt, du type de celui que tu as donné dans ton message: $code=1001 $note=15...

Après, ce n'est pas, à mon avis, la meilleure manière de procéder: une petite base SQL serait beaucoup plus appropriée.

Sinon, pour en revenir à mon exemple, $matches[1] fait référence à ce qui se trouve dans la première parenthèse de l'expression régulière, soit quelquechose du type "$code=1003 $note=". Ensuite tu ajoute le chiffre 16, par exemple, pour obtenir "$code=1003 $note=16". Quant à eval, dans ce cas précis, cela peut t'être utile pour changer la note en question. Si tu essaies cette commande en remplacant le chiffre 16 par une variable $newNote, par exemple, tu t'apercevras que cela ne marche pas. Tout simplement car dans ce cas précis, tu ne peux passer aucun paramètre extérieur à create_function, en dehors de ceux de l'expression régulière.

Mais encore une fois, je pense que manipuler la DB serait beaucoup plus simple...

lundi 31 août 2009 à 21:37:46 | Re : Variable a l'intérieur d'un fichier texte... est-ce possible?

jzeel

Je comprend bien ton point et j'ai très envie de l'essayer mais ce qui m'arrête c'est cette phrase que tu dis " je ne peux passer aucun paramètre extérieur à create_function, en dehors de ceux de l'expression régulière."
Dans ce cas, comment veux-tu que je puisse par SQL prendre le contenu de ma variable dans la BD le stocké dans une variable $newNote (page.php) pour l'utiliser dans mon ($matches[1].$newNote);??? puisque c'est ça le but de tout le problème.

Et si dans mon expression regulière j'ai 2 parenthèse... est-ce possible de changé 2 variables en même temps ainsi:
'return ($matches[1]."16",$matches[2]."20");'
??
Merci pour ton aide!

Jzeel

lundi 31 août 2009 à 22:55:19 | Re : Variable a l'intérieur d'un fichier texte... est-ce possible?

jemil75

Comme ça, par exemple (en gros tu reprends ta commande en échappant les guillemets et en remplacant la variable)

Code PHP :

$newNote=15; // Ou n'importe quelle valeur issue de ta DB
$commande="$text = preg_replace_callback(\"#(\$code=1003(\n|\r\n)?\$note=)[0-9]{1,2}#',
create_function('$matches',
'return ($matches[1].\"".$newNote."\");'),
$text);";
eval($commande);


Evidemment, c'est de l'artillerie lourde...

lundi 31 août 2009 à 23:46:07 | Re : Variable a l'intérieur d'un fichier texte... est-ce possible?

nautilus99

Bonsoir,

Pour être franc avec vous je suis un peu melanger dans le cas de nautilus99 j'ai jamais utilisé du CSV ou des requête JSON ou JQuery je vois QUOI faire mais pas COMMENT le faire... surtout avec aucun exemple cela aide pas.



Le format CSV ets un simple format d etexte délimité. Dans ton cas, tu as 2 champs, code et note. Le look d etes ligne ressemeblerait en csv à ceci:

Code :

1001;5
1002;10
ou, si tu utilises le délimiteur de chaines
Code :

"1001";"5"
"1002";"10"

etc..
En PHP tu as une fonction pour lire un fichier csv et l'importer dans un tableau..
Code PHP :

$r = fopen( 'lecsv.csv', 'r' ) ;
$tab = fgetcsv ( $r, 100, ';' ) ;


et pour retrouver une note par rapport à un code passé à la fonction via $code par exemple:
Code PHP :

if ( array_key_exists( $code, $tab ) ) {
return $tab[$code] ;
} else {
throw new Exception( 'Code inconnu" ) ;
}

Et voilà, sans se battre avec des regexp ou autres..


1 2 3

Cette discussion est classée dans : fichier, code, possible, membre, note


Répondre à ce message

Sujets en rapport avec ce message

code source keylogger [ par cmasters ] Bonjour tt le mondeEst il possible de creer un keylogger en php ?Si oui serait il possible d'avoir un exemple complet d'1 code sourc? Pour que je puis Fichiers CSV+Tableaux et Balaises en PHP !!! [ par spectroman ] Avis à ceux qui maitrise PHP !!!- Demande I :Les fichiers :* Un fichier genre "données1.php"Qui s'occupe de générer l'affichage d'un page de type HTML Upload de fichier possible sur FREE ??? [ par Phrogg ] Hello, J'utilise un script PHP dans lequel j'utilise l'instruction HTML Je récupère ensuite le fichier en PHP dans la variable $fichier. Je peux copi Comment créer un fichier externe avec du code utilisé par plusieur page html ??? [ par GuilleW ] Bonjour ....Pour commencer c'est pas mal qu'il y est du monde qui se bouge pour aider les autes ... (entre autre ... moi dans ce cas !!! <img src=/i Question pour la programmation en PHP et en javascript ... [ par LocalStone ] Ben voilà, je commence un peu à programmer, y a tout qui va bien, mais y a 2 symboles que je ne comprends pas, et je ne voit pas du tout à quoi ils se cacher [ par ekinoks ] g 3 pt kestion ... ;-/ - est t'il possible de cacher la destination d'un téléchargement C.A.D que la personne peu télécharger le fichier mais ne peu Fonction crypt() pour htpasswd [ par Houzefa ] salut,voilà ya quelques temps j'avais fait un fichier .htpasswd pour mettre un répertoire protégé sur mon site (serveur Apache normal). le mot de pass Active scripting : détection possible? [ par paprikarmasutra ] Salut à tous,Voilà je cherche un moyen pour détecter si chez le client l'active scripting est activé ou non, auquel cas j'affiche tel ou tel code.Je r création d'un fichier word sous linux [ par zarbiman ] Bonjour à tous! est-ce possible de générer un fichier word (ou excel) sous linux? si possible sans rien installer vu que je suis sur un terminal et qu prob d'include [ par perig ] BonjoursVoici le problèmeJ 'ai à la racine de mon site un fichier pageindex.phpAvec du php et de l'htmlToujours a la racine j'ai un fichier mysql.phpA


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales