Lister les variables d'un fichier include...

ViPHP
ViPHP | 3607 Messages

15 mai 2006, 12:07

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

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 mai 2006, 13:58

Quel est le but exactement ?
Juste de les utiliser ? tu ne connais pas leur nom avant ?

ViPHP
ViPHP | 3607 Messages

15 mai 2006, 14:17

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...

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 mai 2006, 14:26

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

ViPHP
ViPHP | 3607 Messages

17 mai 2006, 11:34

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