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

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($sort = true){
  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.    $filemtime = filemtime($filename);
  29.    //$channelList[$file]=$array_tmp;
  30.        $channelList[$filemtime] = array($file,$array_tmp);
  31.    }
  32.    }
  33.    closedir($handle);
  34. }
  35. if($sort) krsort($channelList, SORT_NUMERIC);
  36. foreach($channelList as $array_tmp) {
  37. $_channelList[$array_tmp[0]] = $array_tmp[1];
  38. }
  39. unset($channelList);
  40. return $_channelList;
  41. }
  42. //得到program目录名列表
  43. function getPromd5list($sort = 1){
  44. $pronamelist = array();
  45. if ($handle = opendir(PROGRAM_DIR)) {
  46.    while (false !== ($file = readdir($handle))) {
  47.        if ($file != "." && $file != "..") {
  48.    $filemtime = filemtime(PROGRAM_DIR.'/'.$file.'/config');
  49.            $pronamelist[$filemtime]=$file;
  50.        }
  51.    }
  52.    closedir($handle);
  53. }
  54. if($sort==1) krsort($pronamelist, SORT_NUMERIC);
  55. return $pronamelist;
  56. }
  57. //得到program列表 md5对应name 的hashtable形式
  58. function getProgramTable($sort = 1){
  59. $programlist = array();
  60. $pronamelist = getPromd5list($sort);
  61. foreach ($pronamelist as $promd5) {
  62. $profilename = PROGRAM_DIR . "/" . $promd5 . PROGRAM_CONFIG;
  63. $config = array();
  64.     $array_tmp = file($profilename);
  65.     foreach($array_tmp as $v){
  66.         if ((substr(trim($v),0,1)!=';') && (substr_count($v,'=')>=1)){
  67.         //Line mustn't start with a ';' and must contain at least one '=' symbol.
  68.             $pos = strpos($v, '=');
  69.             $config[trim(substr($v,0,$pos))] = trim(substr($v, $pos+1));
  70.         }
  71.     }
  72.     unset($array_tmp);
  73. $programlist[$promd5]=$config["ChannelName"];
  74. }
  75. //asort($programlist);
  76. if($sort==2) {
  77. $programlist_sort = array();
  78. foreach ($programlist as $md5 => $name){
  79. $programlist_sort[$name . $md5] = $md5;
  80. }
  81. ksort($programlist_sort, SORT_STRING);
  82. $programlist2 = array();
  83. foreach ($programlist_sort as $name_md5_sort => $md5_sort){
  84. $programlist2[$md5_sort] = $programlist[$md5_sort];
  85. }
  86. return $programlist2;
  87. }
  88. return $programlist;
  89. }
  90. //得到program information列表 md5对应array 的hashtable形式
  91. function getProgramInfoTable(){
  92. $programlist = array();
  93. $pronamelist = getPromd5list();
  94. foreach ($pronamelist as $promd5) {
  95. $profilename = PROGRAM_DIR . "/" . $promd5 . PROGRAM_CONFIG;
  96. $config = array();
  97.     $array_tmp = file($profilename);
  98.     foreach($array_tmp as $v){
  99.         if ((substr(trim($v),0,1)!=';') && (substr_count($v,'=')>=1)){
  100.         //Line mustn't start with a ';' and must contain at least one '=' symbol.
  101.             $pos = strpos($v, '=');
  102.             $config[trim(substr($v,0,$pos))] = trim(substr($v, $pos+1));
  103.         }
  104.     }
  105.     unset($array_tmp);
  106. $programlist[$promd5]=$config;
  107. }
  108. return $programlist;
  109. }
  110. function infoSp(){
  111. $spid = file(SP_ID);
  112. $command = "/usr/bin/sudo -u root kill -HUP ".$spid[0];
  113. exec($command);
  114. }
  115. function shelldel($dir){
  116. $command = "rm -rf ".$dir;
  117. echo $command;
  118. echo exec($command);
  119. }
  120. @header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
  121. @header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
  122. @header('Cache-Control: no-store, no-cache, must-revalidate');
  123. @header('Cache-Control: post-check=0, pre-check=0', false);
  124. @header('Pragma: no-cache');
  125. ?>