首先要php支持共享内存模块,php编译的时候,configure 后面加 --enable-shmop

解决方案 »

  1.   

    可以,
    手册上有讲
    shm_open()
    ...
      

  2.   

    $shm_id = shmop_open(0xff3, "c", 0644, 100);用这句后出现以下错误,怎样解决
    Call to undefined function: shmop_open()
      

  3.   

    共享内存只适用于linux兼容系统
      

  4.   

    Call to undefined function: shmop_open()linux的话重新编译php,configure 后面加 --enable-shmopwin,php.ini中 extension=php_shmop.dll 前的分号去掉,重启web服务器我的win2000pro,apache运行手册中的这段代码正常。<?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 "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 "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 "Couldn't read from shared memory block\n";
    }
    echo "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 "Couldn't  shared memory block for deletion.";
    }
    shmop_close($shm_id);
       
    ?>
      

  5.   

    有这个功能但是不好用,建议自己写svr支持共享。