Jump to content

[TUT]PHP laten communiceren met INI


Donald F. Duck

Recommended Posts

erbee1.jpg

Introductie

INI (Engels: Initialization file) is een bestandsformaat voor instellingen. In PHP kan je deze gebruiken voor instellingen van de pagina o.i.d. INI werd vroeger voornamelijk gebruikt als instellingen voor Windows, maar sinds Windows 95 kwam het Register. In Linux wordt INI steeds meer gebruikt. Programma's gebruiken INI vanwege de eenvoud en de flexibiliteit ervan.

Formaat

Bij INI bestanden wordt er vaak in het begin een regel commentaar gemaakt met de naam van het ini bestand.

Een voorbeeld van een INI bestand:

; voorbeeld.ini

[sectie1]
tekst1 = foo
tekst2 = bar
; commentaar

[sectie2]
; meer commentaar
tekst1 = Hello
tekst2 = World

Syntaxis

  • Secties: Secties worden aangegeven met '[' en ']', zoals '[sectie1]' en '[sectie2]'. Je kan twee parameters dezelfde naam geven, als ze maar in verschillende secties staan.
  • Parameters: Parameters, zoals 'tekst1 = foo' en 'tekst2 = bar', zijn de variabelen, zoals je ze in PHP als '$tekst1 = 'foo';' gebruikt. Voor de '=' is de naam van de parameter, na de '=' is de instelling.
  • Commentaar: Elke regel beginnend met een ; ('; commentaar') is commentaar. Deze wordt niet gelezen in het script, net zoals met '//' in PHP.

Verschillen

Er is geen officieel formaat voor INI bestanden. Sommige programma's gebruiken een uitgebreidere syntaxis als deze hierboven, maar PHP werkt alleen met de syntaxis die hierboven is aangegeven.

Het gebruik in PHP

Genoeg info gegeven over INI bestanden, laten we nu kijken hoe we de INI's kunnen gebruiken in PHP.

Ten eerste maken we het INI bestand die we voor dit script gaan gebruiken.

; script.ini

[apparaat1]
apparaat = USB
capaciteitgb = 8

[apparaat2]
apparaat = externe harde schijf
capaciteitgb = 1000

[apparaat3]
apparaat = micro sd
capaciteitgb = 4

Sla dit op als script.ini, zoals je bovenaan ziet.

Open je PHP editor, en maak een nieuw bestand.

We gaan eerst kijken hoe de INI eruit ziet als we hem met print_r doen outputten.

<pre>
<?php
$parse = parse_ini_file('script.ini', true);
print_r($parse);
?>
</pre>

Sla dit op als 'output.php' en start deze.

We krijgen te zien:

Array
(
[apparaat1] => Array
	(
		[apparaat] => USB-stick
		[capaciteitgb] => 8
	)

[apparaat2] => Array
	(
		[apparaat] => externe harde schijf
		[capaciteitgb] => 1000
	)

[apparaat3] => Array
	(
		[apparaat] => micro sd
		[capaciteitgb] => 4
	)

)

Zoals je ziet is dit een multidimensional array. Dit betekent dat er een array in een array staat.

Als we nu bijv. apparaat2 -> apparaat willen outputten (externe harde schijf), doen we het zo:

echo $parse['apparaat2']['apparaat'];

Vervang deze regel met de print_r regel uit het vorige script en sla het weer op als output.php. Open dit bestand.

We krijgen mooi de tekst 'externe harde schijf' in beeld. Dit in Courier New omdat <pre></pre> er nog staat. Dit kan je weghalen als je wil, dit was alleen zodat we de array goed leesbaar konden zien.

Als we nu 'apparaat' en 'capaciteitgb' willen outputten, moeten we de echo anders invullen:

echo 'De ' . $parse['apparaat2']['apparaat'] . ' heeft ' . $parse['apparaat2']['capaciteitgb'] . ' GB capaciteit.';

Vervang dit door de vorige echo en sla het op. We krijgen in beeld:

De externe harde schijf heeft 1000 GB capaciteit.

Je kan natuurlijk ook apparaat1 of apparaat3 gebruiken, dan krijg je respectievelijk de USB-stick en de micro sd op je scherm.

Afsluiting

Dit was een korte uitleg over INI in PHP. Met INI kan je nog veel meer dan alleen dit, door te experimenteren kom je ver. Dit was gewoon een voorbeeldje hoe het werkt. Je kan INI's bijvoorbeeld ook gebruiken als taalbestanden of complete databases.

Dit is het einde van deze tutorial. Ik hoop dat je er wat van geleerd hebt.

Bewerkt: door Donald F. Duck
Link to comment
Delen op andere websites

Handige en nuttige tut, ik zeg het niet veel maar nu toch echt wel: ik heb er wat van opgestoken ;) .

Ik wist niet dat je zo makkelijk een INI-file kon parsen in php.

Verder is op je tut niets aan te merken, behalve dat je beter geen plaatjes kunt gebruiken als kopjes.

Dit ga ik zeker nog een keer gebruiken!

Link to comment
Delen op andere websites

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...