Ik probeer iets op te zetten zodat ik makkelijk (zonder database) een array met data kan uitwisselen tussen verschillende lopende scripts.
Na wat speurwerk kwam ik uit bij de 'shmop' functies van php, als experiment heb ik hiervoor de onderstaande functie gemaakt.
Het probleem waar ik echter tegenaan loop is dat de oude data niet wordt verwijderd.
Zoals hier onder al te zien is heb ik al een aantal dingen lopen proberen, waaronder even wachten na het verwijderen en om in elk block een spatie te schrijven, maar om voor mij nog onduidelijke redenen blijft hij oude data bewaren dat in dit geheugen blok staat.
Iemand enig idee wat ik fout doe, of een andere suggestie om data uit te wisselen tussen verschillende scripts ?
om het weer uit te lezen:
Het resultaat:
Na wat speurwerk kwam ik uit bij de 'shmop' functies van php, als experiment heb ik hiervoor de onderstaande functie gemaakt.
Het probleem waar ik echter tegenaan loop is dat de oude data niet wordt verwijderd.
Zoals hier onder al te zien is heb ik al een aantal dingen lopen proberen, waaronder even wachten na het verwijderen en om in elk block een spatie te schrijven, maar om voor mij nog onduidelijke redenen blijft hij oude data bewaren dat in dit geheugen blok staat.
Iemand enig idee wat ik fout doe, of een andere suggestie om data uit te wisselen tussen verschillende scripts ?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| function DoShmop() { global $shmid; shmop_delete($shmid); shmop_close($shmid); usleep(500); $shmid = shmop_open(100,"n",0644,102400); $erase = 0; $count = 0; while($erase !== FALSE) { $erase = @shmop_write($shmid," ",$count); $count++; } $size = shmop_write($shmid,serialize($GLOBALS),0); } |
om het weer uit te lezen:
code:
1
2
3
4
5
| <?php $shmid = shmop_open(100,"a",0666,20480); print_r(unserialize(shmop_read($shmid,0,shmop_size($shmid)))); shmop_close($shmid); ?> |
Het resultaat:
code:
1
2
3
4
5
6
7
8
9
| Array ( [GLOBALS] => Array ( [GLOBALS] => Array ( [GLOBALS] => etc etc... } |