代码高亮

 
        

  1. #!/usr/bin/php -f
  2.     

  3. <?php
  4.     

  5. /**********************************************************
  6.     

  7. 说明:该类访问共享内存
  8.     

  9. 功能:添加、删除、获取共享内存信息,创建或删除共享内存
  10.     

  11.     

  12. ***********************************************************/
  13.     

  14. require_once("/home/junjie2/php_module/Shm.class.php");
  15.     

  16.     

  17. if(!isset($argv[1]) || isset($argv[1]) && ( $argv[1] == "-h" || $argv[1] == "–help")){
  18.     

  19.     show_help();
  20.     

  21. }
  22.     

  23.     

  24. $shm = new Shm();
  25.     

  26.     

  27. $op = $argv[1]; 
  28.     

  29.     

  30. if($op == ‘create’){        //创建
  31.     

  32.     $name = $argv[2];   //键标识
  33.     

  34.     $mod = $argv[3];
  35.     

  36.     $size = $argv[4];
  37.     

  38.     if(strlen($name) != 1){
  39.     

  40.         echo "key name only can be a one charactor string\n";
  41.     

  42.         exit(1);
  43.     

  44.     }
  45.     

  46.     $shm_key = @ftok(__FILE__$name);
  47.     

  48.     if($shm_key == -1){
  49.     

  50.         echo $php_errormsg;
  51.     

  52.         exit(1);
  53.     

  54.     }
  55.     

  56.     if(!$shm->create($shm_key,$mod,$size)){
  57.     

  58.         echo $shm->get_error() ."\n";
  59.     

  60.         exit(1);
  61.     

  62.     }
  63.     

  64.     echo "The key of shm is : 0x".dechex($shm->get_key()) ."\n";
  65.     

  66.     exit(0);
  67.     

  68. }
  69.     

  70.     

  71. if($op == ‘get’){       //获取变量
  72.     

  73.     $key = $argv[2];    //键标识
  74.     

  75.     $var = $argv[3];
  76.     

  77.     $shm->set_key($key);
  78.     

  79.     $val = $shm->get_var($var);
  80.     

  81.     show($val) ;
  82.     

  83.     echo "\n";
  84.     

  85.     exit(0);
  86.     

  87. }
  88.     

  89.     

  90. if($op == ‘put’){       //创建
  91.     

  92.     $key = $argv[2];    //键标识
  93.     

  94.     $var = $argv[3];
  95.     

  96.     $val = $argv[4];
  97.     

  98.     $shm->set_key($key);
  99.     

  100.     if(!$shm->put_var($var,$val)){
  101.     

  102.         echo $shm->get_error() ."\n";
  103.     

  104.         exit(1);
  105.     

  106.     }
  107.     

  108.     exit(0);
  109.     

  110. }
  111.     

  112.     

  113. if($op == ‘remove’){        //创建
  114.     

  115.     $key = $argv[2];    //键标识
  116.     

  117.     $var = $argv[3];
  118.     

  119.     $shm->set_key($key);
  120.     

  121.     if(!$shm->remove_var($var,$val)){
  122.     

  123.         echo $shm->get_error() ."\n";
  124.     

  125.         exit(1);
  126.     

  127.     }
  128.     

  129.     exit(0);
  130.     

  131. }
  132.     

  133. if($op == ‘delete’){        //创建
  134.     

  135.     $key = $argv[2];    //键标识
  136.     

  137.     $shm->set_key($key);
  138.     

  139.     if(!$shm->delete()){
  140.     

  141.         echo $shm->get_error() ."\n";
  142.     

  143.         exit(1);
  144.     

  145.     }
  146.     

  147.     exit(0);
  148.     

  149. }
  150.     

  151.     

  152. show_help();
  153.     

  154. exit(0);
  155.     

  156. function show_help(){
  157.     

  158.     global $argv;
  159.     

  160.     echo "usage:" . $argv[0] ." \n";
  161.     

  162.     echo "create name mod size \n";
  163.     

  164.     echo "get key var \n";
  165.     

  166.     echo "put key var val \n";
  167.     

  168.     echo "remove key var \n";
  169.     

  170.     echo "delete key \n";
  171.     

  172.     exit(0);
  173.     

  174. }
  175.     

  176. function show($var) {
  177.     

  178.     if(is_array($var)){
  179.     

  180.             print_r($var);
  181.     

  182.     }else{
  183.     

  184.             echo $var;
  185.     

  186.     }
  187.     

  188. }
  189.     

  190. ?>

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据