yo!
eh bien tout siemplement, j'ai une page qui écrit, et l'autre qui doit lire le contenu de la mémoire partagée;
j'ai donc simplement repris l'exemple donné dans différents sites:
write.php
Code :
- <?php
- // Create 100 byte shared memory block with system id if 0xff3
- $shm_id = shmop_open(0xff3, "c", 0644, 100);
- if(!$shm_id) {
- echo "Couldn't create shared memory segment\n";
- }
- // Get shared memory block's size
- $shm_size = shmop_size($shm_id);
- echo "<br>SHM Block Size: ".$shm_size. " has been created.\n";
- // Lets write a test string into shared memory
- $shm_bytes_written = shmop_write($shm_id, "my shared memory block", 0);
- if($shm_bytes_written != strlen("my shared memory block" )) {
- echo "<br>Couldn't write the entire length of data\n";
- }
- // Now lets read the string back
- $my_string = shmop_read($shm_id, 0, $shm_size);
- if(!$my_string) {
- echo "<br>Couldn't read from shared memory block\n";
- }
- echo "<br>The data inside shared memory was: ".$my_string."\n";
- //Now lets delete the block and close the shared memory segment
- if(!shmop_delete($shm_id)) {
- echo "<br>Couldn't mark shared memory block for deletion.";
- }
- shmop_close($shm_id);
- ?>
|
qui donne ===>
Code :
- SHM Block Size: 100 has been created.
- The data inside shared memory was: my shared memory block
|
puis une page read.php:
Code :
- <?
- $shm_id = shmop_open(0xff3, "a", 0644, 100);
- echo $shm_id;
- ?>
|
qui donc ouvre simplement en mode append ... par contre le résultat de celle ci est décevant:
Code :
- Warning: shmop_open(): unable to attach or create shared memory segment in /var/www/localhost/htdocs/chat/read.php on line 2
|
voila
si kelkun a une idée ? ce que j'aimerais faire c avoir une variable globale accessible interscripts donc en mémoire partagée (car pas de bdd ni de fileio)
l'idéal serait de pouvoir éventuellement y fouttre un objet php sérialisé et zippé, pour ainsi faire un chat dans lequel je désérialise et rajoute du texte, ou je désérialise et lit le texte dedans ....
voilà merci