functions.php
上传用户:liguizhu
上传日期:2015-11-01
资源大小:2422k
文件大小:3k
源码类别:

P2P编程

开发平台:

Visual C++

  1. <?php
  2. define("PROCESS_FILE",    "/var/run/spnew.pid");
  3. define("PROGRAM_DIR",    "/data/sp/program");
  4. define("PROGRAM_CONFIG",    "/config");
  5. define("CHANNEL_DIR",    "/data/sp/playlist");
  6. define("SP_ID",    "/var/run/spnew.pid");
  7. //得到channel文件名列表
  8. function getChannelList(){
  9. $channelList = array();
  10. if ($handle = opendir(CHANNEL_DIR)) {
  11.    while (false !== ($file = readdir($handle))) {
  12.        if ($file != "." && $file != ".." && strstr($file, ".swap")!=false ) {
  13.            $channelList[]=$file;
  14.        }
  15.    }
  16.    closedir($handle);
  17. }
  18. return $channelList;
  19. }
  20. //得到channel列表 md5对应文件行数组 的hashtable形式
  21. function getChannelTable(){
  22. $channelList = array();
  23. if ($handle = opendir(CHANNEL_DIR)) {
  24.    while (false !== ($file = readdir($handle))) {
  25.        if ($file != "." && $file != "..") {
  26.    $filename = CHANNEL_DIR . "/" . $file;
  27.    $array_tmp = file($filename);
  28.    $channelList[$file]=$array_tmp;
  29.        }
  30.    }
  31.    closedir($handle);
  32. }
  33. return $channelList;
  34. }
  35. //得到program目录名列表
  36. function getPromd5list(){
  37. $pronamelist = array();
  38. if ($handle = opendir(PROGRAM_DIR)) {
  39.    while (false !== ($file = readdir($handle))) {
  40.        if ($file != "." && $file != "..") {
  41.            $pronamelist[]=$file;
  42.        }
  43.    }
  44.    closedir($handle);
  45. }
  46. return $pronamelist;
  47. }
  48. //得到program列表 md5对应name 的hashtable形式
  49. function getProgramTable(){
  50. $programlist = array();
  51. $pronamelist = getPromd5list();
  52. foreach ($pronamelist as $promd5) {
  53. $profilename = PROGRAM_DIR . "/" . $promd5 . PROGRAM_CONFIG;
  54. $config = array();
  55.     $array_tmp = file($profilename);
  56.     foreach($array_tmp as $v){
  57.         if ((substr(trim($v),0,1)!=';') && (substr_count($v,'=')>=1)){
  58.         //Line mustn't start with a ';' and must contain at least one '=' symbol.
  59.             $pos = strpos($v, '=');
  60.             $config[trim(substr($v,0,$pos))] = trim(substr($v, $pos+1));
  61.         }
  62.     }
  63.     unset($array_tmp);
  64. $programlist[$promd5]=$config["ChannelName"];
  65. }
  66. asort($programlist);
  67. return $programlist;
  68. }
  69. //得到program information列表 md5对应array 的hashtable形式
  70. function getProgramInfoTable(){
  71. $programlist = array();
  72. $pronamelist = getPromd5list();
  73. foreach ($pronamelist as $promd5) {
  74. $profilename = PROGRAM_DIR . "/" . $promd5 . PROGRAM_CONFIG;
  75. $config = array();
  76.     $array_tmp = file($profilename);
  77.     foreach($array_tmp as $v){
  78.         if ((substr(trim($v),0,1)!=';') && (substr_count($v,'=')>=1)){
  79.         //Line mustn't start with a ';' and must contain at least one '=' symbol.
  80.             $pos = strpos($v, '=');
  81.             $config[trim(substr($v,0,$pos))] = trim(substr($v, $pos+1));
  82.         }
  83.     }
  84.     unset($array_tmp);
  85. $programlist[$promd5]=$config;
  86. }
  87. return $programlist;
  88. }
  89. function infoSp(){
  90. $spid = file(SP_ID);
  91. $command = "/usr/bin/sudo -u root kill -HUP ".$spid[0];
  92. exec($command);
  93. }
  94. function shelldel($dir){
  95. $command = "rm -rf ".$dir;
  96. echo $command;
  97. echo exec($command);
  98. }
  99. @header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
  100. @header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
  101. @header('Cache-Control: no-store, no-cache, must-revalidate');
  102. @header('Cache-Control: post-check=0, pre-check=0', false);
  103. @header('Pragma: no-cache');
  104. ?>