[PHP] Configuratie (bestand) wijzigen en opslaan

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Stel, ik heb een script gemaakt en hierbij zijn diverse instellingen te veranderen via het aanpassen van de variabelen in "config.php". Om het allemaal gebruikersvriendelijker te maken, wil ik dit bestand kunnen aanpassen via een formulier. En dan dacht ik aan een volgende manier:

PHP:
1
2
3
4
5
// config.php

$config = array();
$config['on'] = 1;
$config['blaat'] = 0;


Kortom, je hebt dus een configuratie bestand met een array die genaamd is als "config". Nu bedacht ik om de gegevens in het formuliertje te krijgen, de volgende manier:

PHP:
1
2
3
4
5
6
$code = implode('', file('config.php')); // $code bevat nu de source van config.php

eval($code);

/* en hier schrijven we bijvoorbeeld $config['blaat'] via
de template parser naar de template van het formuliertje */


En voor het opslaan dacht ik dan gewoon de config.php opnieuw op te bouwen via de gegevens die uit het formuliertje worden gehaald.

Maar mijn vraag is nu; is dit een goede methode of zit ik er gigantisch naast en moet ik die vieze "eval" functie niet gebruiken en moet ik dit maar op een andere manier doen (en uiteraard hoe)?

Bvd

[ Voor 5% gewijzigd door Verwijderd op 11-11-2003 17:09 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ik zou denk ik de file gewoon inlezen als variabele.

Vervolgens de juiste configuratie waarde daaruit pikken de waarde vervangen middels een string functie/regex en het nieuwe geheel weer wegschrijven (evt. met backup van de oude configuratie). :)

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

Include() te moeilijk?

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

Verwijderd

Hmzz zie nu inderdaad dat je iets heel anders bedoelt dan ik dacht :D
(ik dacht dat het config bestand veranderd moest worden ;) )

Mjah include(_once) of require(_once) zijn dan wel handig ja :+

[ Voor 20% gewijzigd door Verwijderd op 11-11-2003 17:20 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wow, hoe stom van mij :?

Had er gewoon niet aangedacht :o

Edit: Zie nu ook dat Nelske zelfde probleem heeft ;)

[ Voor 14% gewijzigd door Verwijderd op 11-11-2003 17:21 . Reden: Zie edit ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 11 november 2003 @ 17:20:
Edit: Zie nu ook dat Nelske zelfde probleem heeft ;)
Nee hoor ;) :o

Zoals je ziet dacht ik dat je iets heel anders van plan was (namelijk een manier verzinnen om in een php-pagina je php-config pagina te veranderen, wat ook wel duidelijk wordt uit de gegeven oplossing :) )

[ Voor 8% gewijzigd door Verwijderd op 11-11-2003 17:23 ]


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

Verwijderd schreef op 11 november 2003 @ 17:22:
[...]

Nee hoor ;) :o

Zoals je ziet dacht ik dat je iets heel anders van plan was (namelijk een manier verzinnen om in een php-pagina je php-config pagina te veranderen, wat ook wel duidelijk wordt uit de gegeven oplossing :) )
Dat kan nog steeds met gewoon de include() oplossing, aangezien je weet welke arrays je in je configuratie bestand wilt hebben, kan je dus gewoon je arrays overnieuw opbouwen en de nieuwe .php bestand aanmaken. :*)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De variabelen laad ik nu dus met include(), maar hoe kan ik nu (zoals jij denk ik hierboven bedoeld) het beste het config.php opnieuw opstellen?

Als ik steeds dezelfde array naam gebruik, dus alles in $config zetten. Zou het niet moeilijk zijn (bestand opnieuw schrijven dmv while loop). Maar echt praktisch is dat niet, of is dit 't beste wat ik kan doen?

Acties:
  • 0 Henk 'm!

Verwijderd

dusty schreef op 11 november 2003 @ 17:25:
[...]

Dat kan nog steeds met gewoon de include() oplossing, aangezien je weet welke arrays je in je configuratie bestand wilt hebben, kan je dus gewoon je arrays overnieuw opbouwen en de nieuwe .php bestand aanmaken. :*)
Yupz is een veel betere oplossing ;)

Komt ook omdat ik er eigenlijk nog nooit over nagedacht had en m'n oplossing als eerste naar boven kwam :)
Verwijderd schreef op 11 november 2003 @ 17:25:
De variabelen laad ik nu dus met include(), maar hoe kan ik nu (zoals jij denk ik hierboven bedoeld) het beste het config.php opnieuw opstellen?

Als ik steeds dezelfde array naam gebruik, dus alles in $config zetten. Zou het niet moeilijk zijn (bestand opnieuw schrijven dmv while loop). Maar echt praktisch is dat niet, of is dit 't beste wat ik kan doen?
Als je een pagina maakt waarin je de config waardes kunt veranderen. Dan kun je zoals Dusty voorstelt, gewoon dat config-bestand includen.

Zeker als je een 1 dimensionaal array hebt dan stelt het niks voor om het weer weg te schrijven na verandering(en) middels iets als een foreach ($array as $key => $value) constructie o.i.d.
Bij een meerdimensionaal array kun je denken aan een recursieve functie. :)

[ Voor 50% gewijzigd door Verwijderd op 11-11-2003 17:32 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok, bedankt :)
Pagina: 1