php windows共享内存,PHP 进程间内存共享

启用php的共享内存:

1).windows下,php.ini中取消 ;extension=php_shmop.dll 这行的行首分号,加载shmop扩展。

2) .linux/unix下,重新编译php,加入--enable--shmop 选项。

Shared Memory 的函数解释如下:

shmop_close — Close shared memory block

shmop_delete — Delete shared memory block

shmop_open — Create or open shared memory block

shmop_read — Read data from shared memory block

shmop_size — Get size of shared memory block

shmop_write — Write data into shared memory block

测试代码如下:

<?php

/*

* @文件: create.php

* @功能:将全局变量写入共享内存中

*/

//定义全局变量

$super = "hello world";

//申请100字节共享内存空间

$shm_id = shmop_open(0xff3, "c", 0644, 100);

if (!$shm_id) {

echo "申请空间失败<br>";

}

//内容写入共享内存空间

if (shmop_write($shm_id, $super, 0)) {

echo "全局变量已经写入共享内存<br>";

}

else {

echo "写入共享内存失败<br>";

}

//关闭共享内存空间

shmop_close($shm_id);

?>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<?php

/*

* @文件: create.php

* @功能:将全局变量写入共享内存中

*/

//定义全局变量

$super="hello world";

//申请100字节共享内存空间

$shm_id=shmop_open(0xff3,"c",0644,100);

if(!$shm_id){

echo"申请空间失败<br>";

}

//内容写入共享内存空间

if(shmop_write($shm_id,$super,0)){

echo"全局变量已经写入共享内存<br>";

}

else{

echo"写入共享内存失败<br>";

}

//关闭共享内存空间

shmop_close($shm_id);

?>

<?php

/*

* @文件: read.php

* @功能:读取共享内存中的内容

*/

//读100字节共享内存空间

$shm_id = shmop_open(0xff3, "a", 0644, 100);

//获取共享内存空间中的前11个字节的内容

//create.php中 $super 变量长度为11

$share = shmop_read($shm_id, 0, 11);

echo $share;

//关闭

shmop_close($shm_id);

?>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?php

/*

* @文件: read.php

* @功能:读取共享内存中的内容

*/

//读100字节共享内存空间

$shm_id=shmop_open(0xff3,"a",0644,100);

//获取共享内存空间中的前11个字节的内容

//create.php中 $super 变量长度为11

$share=shmop_read($shm_id,0,11);

echo$share;

//关闭

shmop_close($shm_id);

?>

测试方法:浏览过 create.php 页面,只要 HTTP 服务不关,以后每打开 read.php 就能读取到共享内存中的 "hello world"。还有一种测试办法,在 create.php 后加个 while(true){} 让脚本不会退出,第一个 dos 窗口执行 php create.php,然后在别的窗口中执行 php read.php 就能在控制台下输出 "hello world"。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
php实现文件共享(其于windows网上邻居原理)   通过本php文件,在进行相关设置后,您可以方便的看到共享目录中的文件,以及相应的说明,便于能够迅速找到自己想要的文件。   找到想要的东西后,直接点击文件夹名打开共享文件夹。 使用方法: 1: 将index.php放在网站根目录。 2: 本脚本支持从根目录向下两级目录显示,目录名可为中文英不限,但是建议使用英文。 3: 请在根目录下建好各种分类文件夹,不要在根目录下直接放普通文件。 4: 要添加新的脚本时,请在所属分类目录中再建一个目录,文件名可为中英文,取名最好简捷明了能直接说明用途。在这个文件夹内放入要用的脚本,并且建一个readme.txt文件,在此txt文件中说明脚本的具体功能和用法。    当用访问的时候,脚本将直接显示在网页列表中,并且在下面显示readme.txt文件中的内容。 5: 直接点击文件夹时,将自动用网上邻居打开此文件所在目录。    这个路径需要一个默认值,建议将网站的根目录直接从服务器上面共享,并将此共享目录的网上邻居目录填到index.php的$netdir变量的''之。 再次重申: 1: 本脚本只支持网站根目录向下的两级文件夹,再有深层目录将不予判断。   2: 此脚本只支持ie内核的浏览器,非IE内核浏览器不支持file://abc.abc.com这样的链接,所以点了链接也打不开。 另: 只为功能所以美工基本没有,眼睛吃点苦了。        顺便宣传一下我的PHP LAMP群:34513293  WEB前端群:73269871 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值