Het aanmaken van het bestand is geen probleem, dus dacht ik het op de zelfde manier te doen.
Hiervoor heb ik een functie:
//functie om ini-bestand te maken
function write_ini($filename, $b) {
$output = '';
foreach ($b as $section => $settings) {
$output .= '[' . $section . ']' . PHP_EOL;
foreach ($settings as $key => $value) {
$output .= $key . ' = ' . $value . PHP_EOL;
}
$output .= PHP_EOL;
}
file_put_contents($filename, $output);
return true;
}
Met de volgende code dacht ik het muteren te kunnen doen, maar dat lijkt hij niet te doen.
Ik hoopte hiermee de volledige array die ik eerst heb uitgelezen, gemuteerd weer terug te plaatsen.
Klopt het pad naar het bestand?
Is het bestand/de directory schrijfbaar en is het bestand niet gelocked?
En wat @Ariën zegt, wat gebeurt er dan wel?
Dan over de functie zelf, wellicht kun je hier output buffering gebruiken? En ook, die return waarde zegt je niets - file_put_contents() retourneert false als het misgaat, dus wellicht kun je daar iets mee doen om na te gaan om te zien of alles goed gaat, dus zoiets?
Even een zij-spoortje: is er een dringende reden waarom je je config in een .ini bestand opslaat? Moet de gebruiker het zelf handmatig kunnen wijzigen bijvoorbeeld?
Allemaal erg bedankt voor de reactie en de aanwijzingen van mogelijke aanpassingen.
Ariën, er gebeurt niets. Ik krijg geen foutmelding en het bestand wordt niet aangepast.
Thomas van den Heuvel, Ik maak het bestand aan en even later probeer ik het op de zelfde manier te wijzigen. Ik ben dus dan de zelfde gebruiker en heb dus de zelfde rechten. De plek van het bestand is het zelfde, dus ook dat kan het niet zijn.
Er is niemand die het bestand gebruikt, dus niemand kan het locken. Wat misschien zou kunnen, is dat ik het zelf gelockt heb. Maar dan moet ik toch een melding krijgen denk ik.
Ik heb je code gebruikt maar het resultaat blijft onveranderd.
Rob Doemaarwat, Ik heb de code gebruikt maar helaas zonder resultaat. Bij wat jij aan gaf moest ik wel versie veranderen in versienummer, maar zelfs toen werkte het niet.
Ik ben wel verder gegaan met testen en merk dat ik het bestand niet op die plek zo kan veranderen door het te openen met een editor en dan op te slaan. Echter, ook dan krijg ik geen melding dat het opslaan niet lukt.
Hm, hoe heb je het bestand aangemaakt? En waar gebeurt dit precies? Op je webserver (welk besturingssysteem?)? Misschien helpt het als je het bestand ook via PHP creëert met touch().
Ik vergat nog aan Rob Doemaarwat te melden dat ik inderdaad gebruikers de mogelijkheid geef om iets aan te passen. Maar dat is in principe alleen bij de installatie. Daarna gebeurt dat door de php code.
Met de volgende code maak ik het bestand aan. Ik schrijf dit naast de php bestanden op mijn nas. Daar het ik een soort intranet server van gemaakt. Volgens mij draait er op mijn nas Linux QNAP 3.4.6, PHP Version 5.6.36
Ik ga nu naar bed, maar ik kom hier op terug.
Ik heb wat foutjes hiermee opgelost, maar dat had geen invloed op waar we hier mee bezig zijn.
Het gekke is, dat als ik het ini bestand verwijder en een nieuwe er voor in de plaats zet. (Volledig buiten php om) Dan staat toch data in het bestand dat in het verwijderde bestand stond. Dus hier moet ik nog eens wat dieper onderzoek naar doen. Maar dus niet deze nacht meer. Bedankt voor zo ver en wordt vervolgd.
Het gekke is, dat als ik het ini bestand verwijder en een nieuwe er voor in de plaats zet. (Volledig buiten php om) Dan staat toch data in het bestand dat in het verwijderde bestand stond.
Waar/hoe wordt de variabele $versienummer ingesteld op de nieuwe versie?