XCIV. Funkce pro práci se sdílenou pamětí

Shmop snadno použitelná sada funkcí, která PHP umožňuje číst, zapisovat, vytvářet a mazat segmenty UNIXové sdílené paměti. Tyto funkce na Windows nefungují, protože tento systém nepodporuje sdílenou paměť. Pokud chcete shmop používat, budete muset PHP zkompilovat s --enable-shmop.

Poznámka: Názvy funkcí popisovaných v této kapitole začínají v PHP 4.0.3 na shm_(), ale od PHP 4.0.4 se jejich názvy změnily na shmop_().

Příklad 1. Přehled operací se sdílenou pamětí

<?php

// Vytvořit 100 bytový blok sdílené paměti se system id 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if(!$shm_id) {
	echo "Nepodařilo se vytvořit segment sdílené paměti\n";
}

// Zjistit velikost bloku sdílené paměti
$shm_size = shmop_size($shm_id);
echo "SHM blok o velikosti : ".$shm_size. " byl vytvořen.\n";

// Zapíšeme do sdílené paměti zkušební řetězec
$shm_bytes_written = shmop_write($shm_id, "my shared memory block", 0);
if($shm_bytes_written != strlen("můj blok sdílené paměti")) {
	echo "Nepodařilo se zapsat kompletní data\n";
}

// Načteme řetězec zpátky
$my_string = shmop_read($shm_id, 0, $shm_size);
if(!$my_string) {
	echo "Nepodařilo se číst z bloku sdílené paměti\n";
}
echo "Data ve sdílené paměti byla: ".$my_string."\n";

//Smažeme tento blok a zavřeme segment sdílené paměti
if(!shmop_delete($shm_id)) {
	echo "Nepodařilo se smazat blok sdílené paměti.";
}
shmop_close($shm_id);

?>

Obsah
shmop_close -- Zavřít blok sdílené paměti
shmop_delete -- Smazat blok sdílené paměti
shmop_open -- Vytvořit nebo otevřít blok sdílené paměti
shmop_read -- Přečíst data z bloku sdílené paměti
shmop_size -- Get size of shared memory block
shmop_write -- Zapsat data do bloku sdílené paměti