Vous n'êtes pas identifié.

Annonces

Les pages de ce Forum sont exploitables par les Navigateurs FireFox, Google Chrome, Opera, Safari, Konqueror, Netscape & MSIE.

#1 [↑] [↓]23/11/2007 22:01:53

Horslemonde
Ami qui a vu l'Ours
Horslemonde
Lieu: SDF, près des Ours
Date d'inscription: 14/04/2006
Messages: 418
Site web

Un petite lib utile et triviale, mais fréquemment utilisable

La voie la + simple pour passer sûrement des paramètres est le passage par un fichier tout simple : txt
PB : passer une série de valeurs -> dans un tableau d'une page à une autre, sans mélanger les sessions d'utilisateur...

Code :

<?php 
function dataExiste($user)
{
	$fname='data-'.$user.'.txt';
	return file_exists($fname);
}

function Killdata($user)
{
	$fname='data-'.$user.'.txt';
	unlink($fname);
}

function Dread($user)
{	
	$tableau = array();
	$fname='data-'.$user.'.txt';
	$handle = fopen($fname,"r") or die("Problème d'ouverture de $fname!!!");
	while (!feof($handle))
	{
		$tableau[] = fgets($handle);
	}
	fclose($handle);
	return $tableau;
}

function Dwrite($tableau,$user)
{
	$fname='data-'.$user.'.txt';
	$handle = fopen($fname,'w') or die("Problème d'écriture de $fname!!!");
	foreach($tableau as $valeur)
	{
		fwrite($handle, $valeur."\n");
	}
	fclose($handle);
}
?>

$user est l'index de l'utilisateur ou de la session en cours pour éviter les collisions de données.
On trouve les 4 fonctions : test de présence, destruction du fichier temporaire, lecture et écriture dans ce fichier.
Le tout étant telleement trivial et simple (d'esprit) que ce code est OPEN SOURCE sans license...
D'autant que je l'ai rédigé suite à une idée originale de Crazy (et oui, toujours le même !).

Donc, pour tous ceux qui ont la flemme d'écrire la même chose pour leurs besoins...
Je le donne en pâtures aux divers copier-coller de la communauté...


C'est pas la première qui fait Meuhhh qui fait le plus de lait ! (dicton personnel, copié dans un poulailler)

L'Art du Tricot - Forum Art du Tricot - Annuaire Art du Tricot

Hors ligne

 

#2 [↑] [↓]23/11/2007 22:15:07

Crazy
Super Admin azimuté
Crazy
Lieu: Côte d'Azur - FRANCE
Date d'inscription: 10/04/2006
Messages: 5696
Site web

Re: Un petite lib utile et triviale, mais fréquemment utilisable

Je viens de re-modifier ton script... Juste pour qu'il soit plus joli...
Et puis, je l'ai remis dans l'ordre pour que cela corresponde à ta description !
Ah ah ah ah ah...
wink
Alain AKA Arma

PS : Pourquoi une fonction dataExiste() qui ne sert que dans Dread() et Killdata() ?


Je suis Bon (avec un grand C) et Immortel... Jusqu'à preuve du contraire ! - I never die...
Chocoku - Sorcier Glouton - Tiger l'Osmose
MSnBetter ThanGoogle - Black Hattitude

I remember and I feel free! - I am the Killer of the Lambs!

Hors ligne

 

#3 [↑] [↓]23/11/2007 22:25:47

Crazy
Super Admin azimuté
Crazy
Lieu: Côte d'Azur - FRANCE
Date d'inscription: 10/04/2006
Messages: 5696
Site web

Re: Un petite lib utile et triviale, mais fréquemment utilisable

En fait, j'aurais tout simplement écrit cela :

Code :

<?php 
function Dread($user)
{	
	if (file_exists('data-'.$user.'.txt'))
	{
		$tableau = array();
		$handle = fopen('data-'.$user.'.txt',"r");
		while (!feof($handle)) $tableau[] = fgets($handle);
		fclose($handle);
		return $tableau;
	}
}

function Dwrite($tableau,$user)
{
	if (!file_exists('data-'.$user.'.txt'))
	{
		$handle = fopen('data-'.$user.'.txt',"w");
		foreach($tableau as $valeur) fwrite($handle, $valeur."\n");
		fclose($handle);
	}
}
?>

Voila, il ne fallait pas m'énerver !
wink
Alain AKA Arma

PS : En plus, créer une fonction qui remplace une instruction PHP... C'est lourd !


Je suis Bon (avec un grand C) et Immortel... Jusqu'à preuve du contraire ! - I never die...
Chocoku - Sorcier Glouton - Tiger l'Osmose
MSnBetter ThanGoogle - Black Hattitude

I remember and I feel free! - I am the Killer of the Lambs!

Hors ligne

 

#4 [↑] [↓]24/11/2007 00:11:28

Horslemonde
Ami qui a vu l'Ours
Horslemonde
Lieu: SDF, près des Ours
Date d'inscription: 14/04/2006
Messages: 418
Site web

Re: Un petite lib utile et triviale, mais fréquemment utilisable

Je ne vais pas chicaner une accolade et un tiret, unsure
Même si tu essaies de vexer un vieux suffisament plus âgé que toi pour que tu lui doives le respect ! shout
Et tu m'as sucré 2 fonctions indispensables !. sick
En programmation, l'encapsulation est destinée à simplifier l'écriture, et surtout la pensée : une ligne vaut toujours mieux que 2 lignes.
Le but de la lib est de penser en terme d'utilisateur et non de fichier... Pour écrire des données ! bleh


C'est pas la première qui fait Meuhhh qui fait le plus de lait ! (dicton personnel, copié dans un poulailler)

L'Art du Tricot - Forum Art du Tricot - Annuaire Art du Tricot

Hors ligne

 

#5 [↑] [↓]24/11/2007 09:55:59

Crazy
Super Admin azimuté
Crazy
Lieu: Côte d'Azur - FRANCE
Date d'inscription: 10/04/2006
Messages: 5696
Site web

Re: Un petite lib utile et triviale, mais fréquemment utilisable

[Vous devez être identifié pour voir le texte caché.]
Explications :

Code :

function dataExiste($user)
{
	$fname='data-'.$user.'.txt';
	return file_exists($fname);
}

Ne sert à rien !
Tester directement avec la fonction PHP :

Code :

if (@file_exists('data-'.$user.'.txt'))
{
	// TRAITEMENT
}

Idem pour la fonction Killdata !

Code :

function Killdata($user)
{
	$fname='data-'.$user.'.txt';
	unlink($fname);
}

Appel de fonction à remplacer par :

Code :

if (@file_exists('data-'.$user.'.txt')) @unlink('data-'.$user.'.txt');

Ou directement (plus court) :

Code :

@unlink('data-'.$user.'.txt');

C'est beaucoup plus simple !
bleh
Alain AKA Arma

PS : Le "@" évite l'affichage d'un éventuel message d'erreur (si warning ou notice).


Je suis Bon (avec un grand C) et Immortel... Jusqu'à preuve du contraire ! - I never die...
Chocoku - Sorcier Glouton - Tiger l'Osmose
MSnBetter ThanGoogle - Black Hattitude

I remember and I feel free! - I am the Killer of the Lambs!

Hors ligne

 

Pied de page des forums

Powered by PunBB modified
© Copyright 2002–2005, Rickard Andersson
© Interface & Functional Add-ons Copyright 2006-2007, by Crazy


RSS Forum CIGIEMA

© 2006-2012 / A. G.
CiGi€M@®, 1997-2012
IDDN Reproduction totale ou partielle strictement interdite
Contact :
/