In een ini-file 1 waarde wijzigen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Innovatieve, nauwkeurige Senior PHP Developer voor

Eind jaren ’90 is dit bedrijf opgericht. Ze hebben zich altijd beziggehouden met het ontwikkelen van software voor overheidsinstanties. Dit zijn instanties waaronder bijvoorbeeld ook onder andere : de belastingdienst, burgerszaken, verschillende bedrijven, notarissen, incassobureau’s en ook nog bewindvoerders. Momenteel tellen ze 20 medewerkers, waarvan 2/3 deel allemaal developers zijn. Doordat ze de enigste aanbieder van dit soort software op de markt zijn, groeien ze erg hard. Door de enorme groei, hebben ze dan ook concrete groeiplannen in het verschiet. Functie-omschrijving Het bedrijf wordt door allerlei instanties ingeschakeld. Tegenwoordig wordt alles digitaal geregeld en gezien de essentie van dit soort

Bekijk vacature »

Full-stack Developer - FinTech - The Netherlands

THIS POSITION IS OPEN FOR INTERNATIONAL CANDIDATES. VISA SPONSORSHIP AND RELOCATION IS PROVIDED. This company creates high performance systems for the management of financial data. They are looking for a Senior Full-Stack Software Engineer with the strong knowledge of Java/JavaScript to join their team. You will be creating and maintaining web based applications, while working in agile environment. They are working with latest technologies like NoSQL (Cassandra) databases, Spark and Scala. Your key responsibilities as Senior Full-Stack Developer: Design, develop, test, deploy, maintain and improve software. Manage individual projects, deadlines and deliverables. You qualifications Senior Full-Stack Developer: BA/BS degree in

Bekijk vacature »

Pagina: « vorige 1 2

- Ariën -
Beheerder

- Ariën -

07/01/2019 08:51:28
Quote Anchor link
Wat meldt $_SERVER['DOCUMENT_ROOT'] in een echo ?
Gewijzigd op 07/01/2019 08:51:57 door - Ariën -
 
PHP hulp

PHP hulp

16/01/2019 03:42:03
 
Frits van Leeuwen

Frits van Leeuwen

07/01/2019 09:27:07
Quote Anchor link
$_SERVER['DOCUMENT_ROOT'] = /share/Web

De PHP-bestanden staan op dat is de basis van alle websites op mijn nas. Daar achter staat staan dus de domeienen met subdomeinen
Zo is het bij deze <domeinnaam>/versie12 (Daar staan de PHP bestanden van deze versie)
Hier staat ook het bestand testnaam.ini En die wil ik muteren.
Gewijzigd op 07/01/2019 09:31:51 door Frits van Leeuwen
 
- Ariën -
Beheerder

- Ariën -

07/01/2019 09:32:10
Quote Anchor link
Gebruik dat eens in je functie.

Noot: Even ter info. DOCUMENT_ROOT is niet geschikt om in cronjobs te gebruiken. Mocht je dit ooit willen doen...
Gewijzigd op 07/01/2019 09:34:33 door - Ariën -
 
Frits van Leeuwen

Frits van Leeuwen

07/01/2019 09:54:49
Quote Anchor link
Dat geeft het zelfde resultaat.
Ik heb eerst het document verwijderd. Toen de installatie gedaan. Met nieuwe data. Echter hij geeft de oude data.

Ik heb toen een nieuwe naam gegeven aan het document, Toen plaatste hij wel de nieuwe data in het document met de nieuwe naam.


Het ziet er dus naar uit dat hij een eerder document met die naam activeert.
Daardoor is een mutatie dus ook niet mogelijk.
Gewijzigd op 07/01/2019 10:08:42 door Frits van Leeuwen
 
Ozzie PHP

Ozzie PHP

07/01/2019 10:08:09
Quote Anchor link
Als ik even heel snel een blik erop werp ...

Eerst gebruik je $_GET['vernr'] om te bepalen of er een nieuwe versie is.

Zo ja, gebruik je vervolgens bij het wegschrijven gewoon weer $versienummer (dit is het oude versienummer) in plaats van $_GET['vernr'].
 
Frits van Leeuwen

Frits van Leeuwen

07/01/2019 10:12:51
Quote Anchor link
Ozzie PHP, Bedankt voor de opmerking. Maar nee, $Get['vernr'] wordt in een ander php bestand opgehaald en meegezonden naar install.php . Dus dat is de oude. In install.php maak zet ik het nieuwe versienummer is $versienummer Dus dat is wel goed.
 
Ozzie PHP

Ozzie PHP

07/01/2019 10:15:09
Quote Anchor link
Op welke regel in de code die je geplaatst hebt, wordt het gewijzigde bestand opgeslagen?
 
- Ariën -
Beheerder

- Ariën -

07/01/2019 10:15:31
Quote Anchor link
Test het eens uit in een minder complexe situaties, en vervang eerst alleen een 'a' door een 'b' bijvoorbeeld.
 
Frits van Leeuwen

Frits van Leeuwen

07/01/2019 13:00:51
Quote Anchor link
Deze code gebruik ik nu voor de test voor het aanmaken van het bestand
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
error_reporting(E_ALL);
ini_set('display_startup_errors', true);
ini_set('display_errors', 'stdout');

//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;
}


$filename = $_SERVER['DOCUMENT_ROOT']."/geldboom.nl/versie012/testnaam.ini";
$versienummer = "0.1.1";
$programmanaam = "testnaam";
$root = "root";
$root_password = "admin";

//gegevens voor geldboom.ini bepalen
$b = array(
'algemeen'=>array(
    'programmanaam'=>$programmanaam,
    'versienummer'=>$versienummer),
'db_verbinding'=>array(
    'host'=>'localhost',
    'gebruiker'=>'testnaam',
    'wachtwoord'=>'testnaam',
    'database'=>'db_testnaam'));

write_ini($filename, $b);
?>


Deze code gebruik ik om het bestand te muteren
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
error_reporting(E_ALL);
ini_set('display_startup_errors', true);
ini_set('display_errors', 'stdout');

//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;
}


$filename = $_SERVER['DOCUMENT_ROOT']."/geldboom.nl/versie012/testnaam.ini";
$versienummer = "0.1.2";
$programmanaam = "testnaam";
$root = "root";
$root_password = "admin";

$b = parse_ini_file($filename,true);
$b['algemeen']['versienummer'] = $versienummer;
write_ini($filename,$b);
                
?>



Het aanmaken lukt, het muteren geeft het probleem zoals we al langere tijd hebben. Of te wijl, er wordt niets veranderd in het bestand.
 
Ozzie PHP

Ozzie PHP

07/01/2019 13:18:04
Quote Anchor link
Voeg in het bestand om te muteren op het eind eens dit stukje code toe:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php

echo '<pre>';
var_dump($b);

?>

Wat staat er nu op je scherm?
 
- Ariën -
Beheerder

- Ariën -

07/01/2019 13:22:16
Quote Anchor link
Ga eens na of de modified-date wel wordt aangepast.
Dan weet je in eider geval of het bestand 'aangeraakt' wordt, of niet.

Ook hoop ik dat dit ini-bestand niet oproepbaar is door anderen. Dat is het nadeel van .ini, .json en .xml bestanden; ze worden niet geparsed. Bij .php gebeurt dit wel, waardoor een config.php altijd leeg is. Het beste is dat je ook deze buiten je webroot zet.
 
Frits van Leeuwen

Frits van Leeuwen

07/01/2019 13:23:32
Quote Anchor link
Ik heb de code onderaan bij beide geplakt
Bij het aanmaken staat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
array(2) {
  ["algemeen"]=>
  array(2) {
    ["programmanaam"]=>
    string(8) "testnaam"
    ["versienummer"]=>
    string(5) "0.1.1"
  }
  ["db_verbinding"]=>
  array(4) {
    ["host"]=>
    string(9) "localhost"
    ["gebruiker"]=>
    string(8) "testnaam"
    ["wachtwoord"]=>
    string(8) "testnaam"
    ["database"]=>
    string(11) "db_testnaam"
  }
}


en bij het muteren staat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
array(2) {
  ["algemeen"]=>
  array(2) {
    ["programmanaam"]=>
    string(8) "testnaam"
    ["versienummer"]=>
    string(5) "0.1.2"
  }
  ["db_verbinding"]=>
  array(4) {
    ["host"]=>
    string(9) "localhost"
    ["gebruiker"]=>
    string(8) "testnaam"
    ["wachtwoord"]=>
    string(8) "testnaam"
    ["database"]=>
    string(11) "db_testnaam"
  }
}


Dus dat gedeelte gaat goed.
 
Ozzie PHP

Ozzie PHP

07/01/2019 13:30:50
Quote Anchor link
Voeg na dat stukje van net ook nog eens dit toe:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

echo '<br>------<br>';
$test = parse_ini_file($filename,true);
var_dump($test);

?>
 
Frits van Leeuwen

Frits van Leeuwen

07/01/2019 14:34:02
Quote Anchor link
bij aanmaken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
array(2) {
  ["algemeen"]=>
  array(2) {
    ["programmanaam"]=>
    string(8) "testnaam"
    ["versienummer"]=>
    string(5) "0.1.1"
  }
  ["db_verbinding"]=>
  array(4) {
    ["host"]=>
    string(9) "localhost"
    ["gebruiker"]=>
    string(8) "testnaam"
    ["wachtwoord"]=>
    string(8) "testnaam"
    ["database"]=>
    string(11) "db_testnaam"
  }
}

------
array(2) {
  ["algemeen"]=>
  array(2) {
    ["programmanaam"]=>
    string(8) "testnaam"
    ["versienummer"]=>
    string(5) "0.1.1"
  }
  ["db_verbinding"]=>
  array(4) {
    ["host"]=>
    string(9) "localhost"
    ["gebruiker"]=>
    string(8) "testnaam"
    ["wachtwoord"]=>
    string(8) "testnaam"
    ["database"]=>
    string(11) "db_testnaam"
  }
}


bij muteren
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
array(2) {
  ["algemeen"]=>
  array(2) {
    ["programmanaam"]=>
    string(8) "testnaam"
    ["versienummer"]=>
    string(5) "0.1.2"
  }
  ["db_verbinding"]=>
  array(4) {
    ["host"]=>
    string(9) "localhost"
    ["gebruiker"]=>
    string(8) "testnaam"
    ["wachtwoord"]=>
    string(8) "testnaam"
    ["database"]=>
    string(11) "db_testnaam"
  }
}

------
array(2) {
  ["algemeen"]=>
  array(2) {
    ["programmanaam"]=>
    string(8) "testnaam"
    ["versienummer"]=>
    string(5) "0.1.2"
  }
  ["db_verbinding"]=>
  array(4) {
    ["host"]=>
    string(9) "localhost"
    ["gebruiker"]=>
    string(8) "testnaam"
    ["wachtwoord"]=>
    string(8) "testnaam"
    ["database"]=>
    string(11) "db_testnaam"
  }
}

Het resultaat in het bestand is nog steeds alleen de inhoud van het aanmaken.
 
Ozzie PHP

Ozzie PHP

07/01/2019 14:44:46
Quote Anchor link
Kijk, dit is positief :-)

In het muteren-bestand zie je dat de 2e array hetzelfde is als de eerste.

Echter, de 2e array is ingelezen vanuit het zojuist aangemaakte bestand.

Het werkt dus wel, maar om een of andere reden krijg jij de verkeerde inhoud te zien. Wellicht heeft dat te maken met caching. Maar de code werkt dus prima.
 
Frits van Leeuwen

Frits van Leeuwen

07/01/2019 14:49:03
Quote Anchor link
pffff inderdaad positief. Dank je wel. Ik ga er op een later tijdstip mee verder. Ik denk wel dat ik nu weer verder kan experimenteren.
 
Ozzie PHP

Ozzie PHP

07/01/2019 14:54:42
Quote Anchor link
Graag gedaan. Succes ermee :-)
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.