コード例 #1
0
ファイル: clear_m3u8.php プロジェクト: h3len/Project
 public function clear()
 {
     $sql = "SELECT c.code FROM " . DB_PREFIX . "channel c LEFT JOIN " . DB_PREFIX . "server_config sc ON sc.id=c.server_id WHERE sc.type='nginx'";
     $q = $this->db->query($sql);
     while ($r = $this->db->fetch_array($q)) {
         hg_clear_m3u8(DATA_DIR . $r['code']);
     }
 }
コード例 #2
0
ファイル: functions.php プロジェクト: h3len/Project
function hg_clear_m3u8($dir)
{
    if (is_dir($dir)) {
        $handle = dir($dir);
        while ($file = $handle->read()) {
            if ($file == '.' || $file == '..') {
                continue;
            }
            $bdir = $dir . "/" . $file;
            if (is_dir($bdir)) {
                hg_clear_m3u8($bdir);
            } else {
                $file_type = strrchr($bdir, '.');
                if ($file_type == '.m3u8' && $file != 'live.m3u8') {
                    unlink($bdir);
                }
            }
        }
    }
}
コード例 #3
0
    public function cache_program_shield($channel_id, $dates, $code)
    {
        $program_shield_dir = $this->settings['program_shield_dir'] ? $this->settings['program_shield_dir'] : 'program_shield';
        $dir = $dates;
        $dir = CACHE_DIR . $program_shield_dir . '/' . $dir;
        $field = '*';
        $filename = $code . '.php';
        $sql = "SELECT {$field} FROM " . DB_PREFIX . "program_shield ";
        $sql .= " WHERE channel_id = " . $channel_id;
        $sql .= " AND dates = '" . $dates . "' AND type=0";
        $q = $this->db->query($sql);
        $return = array();
        while ($row = $this->db->fetch_array($q)) {
            $return[] = $row;
        }
        $time_zone = array();
        $last_end_time = 0;
        $i = 0;
        foreach ($return as $v) {
            if ($v['start_time'] == $last_end_time) {
                $last_end_time = $time_zone[$i]['end_time'] + $v['start_time'] + $v['toff'];
                $time_zone[$i - 1]['end_time'] = $last_end_time;
                $time_zone[$i - 1]['end_time_format'] = date('Y-m-d H:i:s', $last_end_time);
                $i--;
            } else {
                $last_end_time = $v['start_time'] + $v['toff'];
                $time_zone[$i] = array('start_time' => $v['start_time'], 'end_time' => $last_end_time, 'start_time_format' => date('Y-m-d H:i:s', $v['start_time']), 'end_time_format' => date('Y-m-d H:i:s', $last_end_time));
            }
            $i++;
        }
        if (!is_dir($dir)) {
            hg_mkdir($dir);
        }
        if (!$return) {
            @unlink($dir . '/' . $filename);
        }
        $content = '<?php
$program_shield = ' . var_export($return, 1) . ';
$program_shield_zone = ' . var_export($time_zone, 1) . ';
?>';
        hg_file_write($dir . '/' . $filename, $content);
        @unlink($dir . '/' . $channel_id . '.php');
        hg_clear_m3u8(DATA_DIR . $code);
    }