向内存段写入数据
使用 shmop_write
函数向共享内存块写入数据。此函数的使用很简单,它仅接受 3
个参数,如清单 2 所示。
清单 2. 使用 shmop_write 向共享内存块写入数据
<?php
$shmid = shmop_open(864 , ' c ' , 0755, 1024) ;
shmop_wr i te ($shmid , "He l lo Wor ld ! " , 0) ;
?>
这个函数类似于 fwrite 函数,后者有两个参数:打开的流资源(由 fopen 返回)
和您希望写入的数据。shmop_write 函数也执行此任务。
第一个参数是 shmop_open
返回的 ID,它识别您操作的共享内存块。第二个参数是
您希望存储的数据,最后的第三个参数是您希望开始写入的位置。默认情况下,我们始终
使用 0
来表示开始写入的位置。请注意,此函数在失败时会返回 FALSE,在成功时会返
回写入的字节数。
从内存段读取数据
从共享内存段读取数据很简单。您只需要一个打开的内存段和 shmop_read 函数。此
函数接受一些参数,工作原理类似于 fread
。参见清单 3
,读取一个 PHP 文件的内容。
清单 3. 使用 shmop_read 读取一个文件的内容
<?php
$st ream = fopen( ' f i l e . t x t ' , ' r+ ' ) ;
fwr i te ($s t ream, "He l lo Wor ld ! " ) ;
echo f read ($s t ream, 11) ;