Page 1 sur 1

Lister les variables d'un fichier include...

Posté : 15 mai 2006, 12:07
par jojolapine
Bonjour à tous et à toutes, je cherche si il existe une fonction qui me permettrait de lister les variables présentes dans un fichier inclu...
ça m'éviterai d'avoir à le lire, puis de séparer les nom qui commence par '$', etc...
si vous avez une idée?
merci d'avance

Posté : 15 mai 2006, 13:58
par ouckileou
Quel est le but exactement ?
Juste de les utiliser ? tu ne connais pas leur nom avant ?

Posté : 15 mai 2006, 14:17
par jojolapine
Ben en fait c'est pour un fichier de configuration, je voulais dans ma page qui affiche les options et permet de les modifié, utilisé une boucle ou qqch comme ça pour pouvoir ajouter des options à ma guise...
Là je suis en train d'essayer avec un tableau de config du type:
$config=array('variable' => valeur, ...)
mais je n'arrive pas trop, si vous avez une meilleur idée pour gérer une configuration, sinon je vais finir par me trouner vers une table de donnée, puisque j'en ai déja une dans le projet...

Posté : 15 mai 2006, 14:26
par ouckileou
Si c'est un fichier de config, tu connais les variables qui sont dedans, je ne crois pas qu'il soit nécessaire de faire ça dynamiquement.

Tu peux très bien faire un formulaire, qui a la soumission va regénérer le fichier en écrivant le code PHP.

Sinon tu peux aussi te tourner vers le XML, mais une table de base de données c'est peut-être un peu lourd juste pour qq variables de configuration

Posté : 17 mai 2006, 11:34
par jojolapine
bon me revoila, j'ai finalement choisi le fichier de configuration
mais j'ai un petit soucis d'optimisation:
config.php
<?php
//date de modification: 23:30:31 16/05/2006
$variable=valeur;
?>
et voici la fonction que j'utilise pour modifier une valeur:
function change_config($variable,$ancienne_valeur,$nouvelle_valeur){
	$filename = "./config.php";
	$handle = fopen ($filename, "r");
	$chaine = fread ($handle, filesize ($filename));
	fclose($handle);
	$aremplacer=$variable."=".$ancienne_valeur;
	$par=$variable."=".$nouvelle_valeur;
	$chaine=ereg_replace($aremplacer,$par,$chaine);
	$aremplacer="[0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-3][0-9]/[0-1][0-9]/[0-3][0-9][0-9][0-9]";
	$par=date('H').":".date("i").":".date("s")." ".date("d")."/".date("m")."/".date("Y");
	$chaine=ereg_replace($aremplacer,$par,$chaine);
	$handle=fopen ($filename, "w+");
	fwrite($handle,$chaine);
	fclose($handle);
}
elle marche très bien, mais le problème c'est que je suis obligé d'ouvrir deux fois le fichier, une fois pour la lecture et une autre pour l'écriture...
si je l'ouvre en w+ comme je voulais le faire au début, je ne peu plus le lire, le fichier est blanc, bref.... y a t'il un autre moyen pour lire et écrire en ouvrant qu'une seule fois le fichier?
merci