Så här använder du INI-filer med PHP
Nu var det ett tag sedan jag skrev nåt här på baronen, så jag tyckte det var dags nu. I denna post tänkte jag bara tipsa om PHP-funktionen parse_ini_file, som tillåter dig att enkelt använda en konfigurationsfil i form av en .ini.
Vi börjar med att skapa settings.ini där vi ska spara lite information. I denna fil har vi lagt till två sektioner, site och database, dessa innehåller sedan olika värden.
[site] version = 0.1 develop = true [database] host = localhost username = root password = root table = site
För att sedan läsa ut inställningarna använder vi alltså funktionen parse_ini_file. Denna funktion returnerar en eller flerdimensionella arrayer beroende på parametrar.
$iniFile = parse_ini_file('settings.ini', true);
Som andra inparameter i funktionen skickar vi med true, detta för att få med alla sektioner i INI-filen. Om vi nu kollar vad $iniFile innehåller ser vi följande.

Vi kan nu använda denna information som en vanlig array, där vi kan hämta ut version, databasanvändare med mera.
Här är två små exempel på hur man kan använda detta.
if($iniFile['site']['develop']) { error_reporting(E_ALL|E_STRICT); ini_set('display_errors', 1); }
echo "Du använder just nu version: " . $iniFile['site']['version'];
Svårare än så är det inte att använda sig av en INI-fil för att spara inställningar. Detta är bara ett väldigt enkelt exempel också, man bör har en egen klass som sköter detta på ett bättre sätt, samt använda Singleton-mönstret.
Värt att tänka på är att lägga INI-filen utanför “www-mappen”, detta för att inga obehöriga ska kunna öppna och läsa filen, kan bli så dumt om man sparar databasuppgifter och annan känslig data.
Vill du veta mer om parse_ini funktionen rekommenderar jag den officiella dokumentationen.











Bra tips! Jag har tidigare skapat en defines.inc.php men nu ska jag nog börja att använda en ini istället
Ser intressant ut. Ska kollas över. Bra post!
Snygg kod. Ska testa den.
[...] läste jag Baronens blogg om INI-filer och PHP så jag tänkte dela med mig av hur jag använder dessa i mina projekt. I det [...]