background image

向内存段写入数据

使用 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) ;