Avatar billede oergaard Nybegynder
07. maj 2008 - 13:46 Der er 4 kommentarer og
1 løsning

Læse fra og skrive til config.ini

Jeg er ved at lære lidt PHP i den forbindelse vil forsøger jeg mig med at lave en lille database site, som bl.a. skal liste mine eksisterende tabeller, oprette nye m.m.

Jeg kunne godt tænke mig at placere nogle generelle informationer i en config.ini fil.

F.eks. connection informationer som:
  - server
  - brugernavn
  - adgangskode

Derudover vil jeg placere administrator brugernavn og adgangskode.

Alle informationer gemmes i config.ini som krypteret data.

Config.ini skal se ud som følgende:
-----------------
[ADMIN]
krypteret_brugernavn=krypteret_password

[CONNECTION]
server = krypteret_servernavn
brugernavn = krypteret_brugernavn
password = krypteret_password

[evt. flere sektioner]
-----------------

Mit første spørgsmål lyder så på, skal jeg virkelig trække alle linje ud af min config.ini fil med:
  $ini_file = parse_ini_file("config.ini",true);
eller findes der en smartere måde, hvor jeg kan nøjes med at trække [ADMIN] sektionen ud?

Mit andet spørgsmål, hvordan skriver jeg til en .ini fil og kan dette gøres på en smart måde så jeg skrive til en bestemt sektion, f.eks. [ADMIN] eller skal jeg skrive alle linjerne på ny?
Avatar billede coderdk Praktikant
07. maj 2008 - 20:53 #1
Bare skriv den hele igen, det gøres nemt ved f.eks:

$txt = '';
foreach ( $ini_file as $section => $valuepairs )
{
  $txt .= '[' . $section . "]\n";
  foreach ( $valuepairs as $key => $val )
  {
      $txt .= $key . "=" . $val . "\n";
  }
  $txt .= "\n";
}
file_put_contents( "config.ini", $txt, LOCK_EX | FILE_TEXT );

file_put_contents kan erstattes af fopen/flock/fwrite/fclose hvis du ikke bruger PHP5...
Avatar billede coderdk Praktikant
07. maj 2008 - 20:54 #2
Men husk at smide filen et sted hvor den ikke kan tilgås direkte, eller kontrollér dette med .htaccess - Alternativt kan du bruge en config.php i stedet og bare skrive det i PHP...
Avatar billede oergaard Nybegynder
08. maj 2008 - 07:26 #3
Det ser ud til at virke fint, lige bortset fra at den på trods af \n ikke laver nogle linieskift i min config.ini fil.
Avatar billede coderdk Praktikant
08. maj 2008 - 08:23 #4
Den laver linjeskift, men du bruger sikkert notepad eller lign til at checke - den vil have \r\n i stedet for \n - parse_ini_file virker stadig med bare \n
Avatar billede oergaard Nybegynder
08. maj 2008 - 09:00 #5
ahh ok.

Tak for hjælpen... :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester