【PHP】FC2ライブの接続率を集計
こんにちは。
今回は、PHPでFC2ライブ(アダルト)の配信接続率を集計するコードを紹介します。
FC2ライブの公式APIを使用しており、仕様変更の場合は、都度コードの更新を行ってください。
データベースでテーブルを4つ作成します。
テーブル名:cnannel_data
CREATE TABLE `channel_data` (
`id` int(11) NOT NULL,
`time` varchar(255) DEFAULT NULL,
`channel_all` int(11) DEFAULT NULL COMMENT '総チャンネル数',
`channel_free` int(11) DEFAULT NULL COMMENT '無料配信',
`channel_pay` int(11) DEFAULT NULL COMMENT '有料配信',
`channel_two` int(11) DEFAULT NULL COMMENT '2ショット',
`free_taiki` int(11) DEFAULT NULL COMMENT '無料待機者',
`free_connect` int(11) DEFAULT NULL COMMENT '無料接続率',
`pay_taiki` int(11) DEFAULT NULL COMMENT '有料待機者',
`pay_connect` int(11) DEFAULT NULL COMMENT '有料接続率',
`delflag` int(1) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='チャンネル情報保存用';
ALTER TABLE `channel_data`
ADD PRIMARY KEY (`id`);
ALTER TABLE `channel_data`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
テーブル名:channel_data_ave
CREATE TABLE `channel_data_ave` (
`id` int(11) NOT NULL,
`date` varchar(20) NOT NULL,
`hours` int(2) NOT NULL,
`channel_free` int(3) NOT NULL DEFAULT 0 COMMENT '無料接続率',
`channel_pay` int(3) NOT NULL DEFAULT 0 COMMENT '有料接続率',
`delflag` int(1) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='接続率平均値';
ALTER TABLE `channel_data_ave`
ADD PRIMARY KEY (`id`);
ALTER TABLE `channel_data_ave`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
テーブル名:channel_list
CREATE TABLE `channel_list` (
`id` int(11) NOT NULL,
`channel_id` mediumtext DEFAULT NULL,
`channel_title` mediumtext DEFAULT NULL,
`channel_name` mediumtext DEFAULT NULL,
`channel_type` int(1) DEFAULT NULL,
`channel_count` int(11) DEFAULT NULL,
`channel_login` int(1) DEFAULT NULL,
`channel_pay` int(1) DEFAULT NULL,
`time` varchar(225) DEFAULT NULL,
`delflag` int(11) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `channel_list`
ADD PRIMARY KEY (`id`);
ALTER TABLE `channel_list`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
テーブル名:channel_time
CREATE TABLE `channel_time` (
`id` int(11) NOT NULL,
`time` varchar(255) NOT NULL,
`delflag` int(1) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `channel_time`
ADD PRIMARY KEY (`id`);
ALTER TABLE `channel_time`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
必要なPHPファイルを作成していきます。
databese.php
必要項目を書き換えてください。
<?php
define('DSN', 'mysql:host=10.0.0.0;dbname=DBname');
define('DB_USER', 'user_name');
define('DB_PASS', 'password');
?>
chlist.php
サーバー側のCronにて、5分毎に実行されるよう設定してください。
<?php
session_start();
//クリックジャッキング対策
header('X-FRAME-OPTIONS: SAMEORIGIN');
require_once('./datebase.php');
$pdo = NULL;
$pdo = new PDO(DSN, DB_USER, DB_PASS);
$url = 'https://live.fc2.com/adult/contents/allchannellist.php';
$json = file_get_contents($url);
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$arr = json_decode($json,true);
$json_count = count($arr["channel"]);
$channel_id = array();
$channel_title = array();
$channel_name = array();
$channel_type = array();
$channel_count = array();
$channel_login = array();
$channel_pay = array();
date_default_timezone_set('Asia/Tokyo');
$now = date('Y-m-d H:i:s');
$result = NULL;
$result = $pdo->prepare('INSERT INTO channel_time(time) VALUES(:now)');
$result->bindValue(':now', $now, PDO::PARAM_STR);
$result->execute();
for($i=0;$i<=$json_count-1;$i++){
$channel_id = $arr["channel"][$i]["id"];
$channel_title = $arr["channel"][$i]["title"];
$channel_name = $arr["channel"][$i]["name"];
$channel_type = $arr["channel"][$i]["type"];
$channel_count = $arr["channel"][$i]["count"];
$channel_login = $arr["channel"][$i]["login"];
$channel_pay = $arr["channel"][$i]["pay"];
$result = NULL;
$result = $pdo->prepare('INSERT INTO channel_list(channel_id,channel_title,channel_name,channel_type,channel_count,channel_login,channel_pay,time) VALUES(:channel_id,:channel_title,:channel_name,:channel_type,:channel_count,:channel_login,:channel_pay,:now)');
$result->bindValue(':channel_id', $channel_id, PDO::PARAM_STR);
$result->bindValue(':channel_title', $channel_title, PDO::PARAM_STR);
$result->bindValue(':channel_name', $channel_name, PDO::PARAM_STR);
$result->bindValue(':channel_type', $channel_type, PDO::PARAM_INT);
$result->bindValue(':channel_count', $channel_count, PDO::PARAM_INT);
$result->bindValue(':channel_login', $channel_login, PDO::PARAM_INT);
$result->bindValue(':channel_pay', $channel_pay, PDO::PARAM_INT);
$result->bindValue(':now', $now, PDO::PARAM_STR);
$result->execute();
}
$chall = 0;
$pay_free_count = 0;
$free_taiki_count = 0;
$pay_yuryo_count = 0;
$pay_taiki_count = 0;
$freecalc1 = 0;
$freecalc2 = 0;
$paycalc1 = 0;
$paycalc2 = 0;
$twopay_count = 0;
$view = NULL;
$dbflag = 1;
$stmt = NULL;
$row = NULL;
$stmt = $pdo->prepare('SELECT * FROM channel_time WHERE delflag=0 ORDER BY id DESC LIMIT 100');
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$chtime = $row['time'];
$stmt2 = NULL;
$row2 = NULL;
$stmt2 = $pdo->prepare('SELECT * FROM channel_list WHERE time=:chtime AND delflag=0');
$stmt2->bindValue(':chtime', $chtime, PDO::PARAM_STR);
$stmt2->execute();
while($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)){
$pay = $row2['channel_pay'];
$taiki = $row2['channel_count'];
$ctype = $row2['channel_type'];
$chall = $chall + 1;
if($pay === 0){
//無料配信
$pay_free_count = $pay_free_count + 1;
if($taiki <= 1){
$free_taiki_count = $free_taiki_count + 1;
}
}else{
if($ctype === 1){
//有料配信
$pay_yuryo_count = $pay_yuryo_count + 1;
//待機者
if($taiki <= 1){
$pay_taiki_count = $pay_taiki_count + 1;
}
}elseif($ctype === 2){
//2ショット配信
$twopay_count = $twopay_count + 1;
}
}
}
//無料中=無料配信-待機者数
$freecalc1 = $pay_free_count - $free_taiki_count;
//接続率=(無料中/全配信)*100
if($freecalc1 == 0){
$freecalc1 = 1;
}
$freecalc2 = ($freecalc1 / $pay_free_count)*100;
$freecalc2 = round($freecalc2);
//有料中=有料全配信-待機者数
$paycalc1 = $pay_yuryo_count - $pay_taiki_count;
//接続率=(有料中/全配信)*100
if($paycalc1 == 0){
$paycalc1 = 1;
}
$paycalc2 = ($paycalc1 / $pay_yuryo_count)*100;
$paycalc2 = round($paycalc2);
//表示データ
$view .= '<div class="textcenter">'.$chtime.'</div><table class="table1-1"><tr><th>チャンネル数</th><td>'.number_format($chall).'</td></tr><tr><th>無料</th><td>'.number_format($pay_free_count).'</td></tr><tr><th>無料待機者</th><td>'.number_format($free_taiki_count).'</td></tr><tr><th>無料接続率</th><td>'.$freecalc2.'%</td></tr><tr><th>有料</th><td>'.number_format($pay_yuryo_count).'</td></tr><tr><th>有料待機者</th><td>'.number_format($pay_taiki_count).'</td></tr><tr><th>有料接続率</th><td>'.$paycalc2.'%</td></tr><tr><th>2ショット</th><td>'.number_format($twopay_count).'</td></tr></table><br>';
//DB:channel_data登録
if($dbflag === 1){//最初に抽出されたデータのみ登録
$result = NULL;
$result = $pdo->prepare('INSERT INTO channel_data(time,channel_all,channel_free,channel_pay,channel_two,free_taiki,free_connect,pay_taiki,pay_connect) VALUES(:now,:channel_all,:channel_free,:channel_pay,:channel_two,:free_taiki,:free_connect,:pay_taiki,:pay_connect)');
$result->bindValue(':now', $now, PDO::PARAM_STR);
$result->bindValue(':channel_all', $chall, PDO::PARAM_INT);
$result->bindValue(':channel_free', $pay_free_count, PDO::PARAM_INT);
$result->bindValue(':channel_pay', $pay_yuryo_count, PDO::PARAM_INT);
$result->bindValue(':channel_two', $twopay_count, PDO::PARAM_INT);
$result->bindValue(':free_taiki', $free_taiki_count, PDO::PARAM_INT);
$result->bindValue(':free_connect', $freecalc2, PDO::PARAM_INT);
$result->bindValue(':pay_taiki', $pay_taiki_count, PDO::PARAM_INT);
$result->bindValue(':pay_connect', $paycalc2, PDO::PARAM_INT);
$result->execute();
}
$dbflag = 0;
$chall = 0;
$free_taiki_count = 0;
$pay_free_count = 0;
$freecalc1 = 0;
$freecalc2 = 0;
$pay_yuryo_count = 0;
$pay_taiki_count = 0;
$paycalc1 = 0;
$paycalc2 = 0;
$twopay_count = 0;
}
echo $view;
?>
chlist_ave.php
サーバー側のCronで1時間ごとに実行されるように設定してください。
<?php
//配信接続率平均値算出用
session_start();
//クリックジャッキング対策
header('X-FRAME-OPTIONS: SAMEORIGIN');
require_once('./datebase.php');
$pdo = NULL;
$pdo = new PDO(DSN, DB_USER, DB_PASS);
date_default_timezone_set('Asia/Tokyo');
$now = new DateTimeImmutable();
$now->format("Y-m-d H:i:s");
$now = $now->modify("-1 hour");
$now2 = $now->format("Y-m-d H:00:00");
$now3 = $now->format("Y-m-d H:59:59");
$ymd = $now->format("Y-m-d");
$hours = $now->format("H");
$count = NULL;
$count = 0;
$channel_free = NULL;
$channel_pay = NULL;
$free_connect = NULL;
$pay_connect = NULL;
$stmt = NULL;
$row = NULL;
$stmt = $pdo->prepare('SELECT * FROM channel_data WHERE time between :now2 AND :now3 AND delflag=0');
$stmt->bindValue(':now2', $now2, PDO::PARAM_STR);
$stmt->bindValue(':now3', $now3, PDO::PARAM_STR);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$count = $count + 1;
$channel_free = $row['free_connect'];
$channel_pay = $row['pay_connect'];
$free_connect = $free_connect + $channel_free;
$pay_connect = $pay_connect + $channel_pay;
}
$free_calc = floor($free_connect/$count);
$pay_calc = floor($pay_connect/$count);
$result = NULL;
$result = $pdo->prepare('INSERT INTO channel_data_ave(date,hours,channel_free,channel_pay) VALUES(:date,:hours,:channel_free,:channel_pay)');
$result->bindValue(':date', $ymd, PDO::PARAM_STR);
$result->bindValue(':hours', $hours, PDO::PARAM_INT);
$result->bindValue(':channel_free', $free_calc, PDO::PARAM_INT);
$result->bindValue(':channel_pay', $pay_calc, PDO::PARAM_INT);
$result->execute();
?>
このページを開くと、集計したデータが表示されます。
connect_view.php
<?php
//配信接続率平均値表示
session_start();
//クリックジャッキング対策
header('X-FRAME-OPTIONS: SAMEORIGIN');
require_once('../datebase.php');
$pdo = NULL;
$pdo = new PDO(DSN, DB_USER, DB_PASS);
//日時別データ取得,30日前まで
$view0 = NULL;
$view1 = NULL;
$view2 = NULL;
$view3 = NULL;
$view4 = NULL;
$view5 = NULL;
$view6 = NULL;
$view7 = NULL;
$view8 = NULL;
$view9 = NULL;
$view10 = NULL;
$view11 = NULL;
$view12 = NULL;
$view13 = NULL;
$view14 = NULL;
$view15 = NULL;
$view16 = NULL;
$view17 = NULL;
$view18 = NULL;
$view19 = NULL;
$view20 = NULL;
$view21 = NULL;
$view22 = NULL;
$view23 = NULL;
$view24 = NULL;
$view25 = NULL;
$view26 = NULL;
$view27 = NULL;
$view28 = NULL;
$view29 = NULL;
$view30 = NULL;
$ymd0 = NULL;
$ymd1 = NULL;
$ymd2 = NULL;
$ymd3 = NULL;
$ymd4 = NULL;
$ymd5 = NULL;
$ymd6 = NULL;
$ymd7 = NULL;
$ymd8 = NULL;
$ymd9 = NULL;
$ymd10 = NULL;
$ymd11 = NULL;
$ymd12 = NULL;
$ymd13 = NULL;
$ymd14 = NULL;
$ymd15 = NULL;
$ymd16 = NULL;
$ymd17 = NULL;
$ymd18 = NULL;
$ymd19 = NULL;
$ymd20 = NULL;
$ymd21 = NULL;
$ymd22 = NULL;
$ymd23 = NULL;
$ymd24 = NULL;
$ymd25 = NULL;
$ymd26 = NULL;
$ymd27 = NULL;
$ymd28 = NULL;
$ymd29 = NULL;
$ymd30 = NULL;
for($i=30;$i>=0;$i--){
date_default_timezone_set('Asia/Tokyo');
$now = new DateTimeImmutable();
$now->format("Y-m-d H:i:s");
$now = $now->modify("-".$i." day");
$ymd = $now->format("Y-m-d");
$ymda = $now->format("Y-m-d(D)");
if(strpos($ymda,'Sat') !== false){
$ymda = '<font style="color:blue;">'.$ymda.'</font>';
}elseif(strpos($ymda,'Sun') !== false){
$ymda = '<font style="color:red;">'.$ymda.'</font>';
}
if($i === 30){
$ymd30 = $ymda;
}elseif($i === 29){
$ymd29 = $ymda;
}elseif($i === 28){
$ymd28 = $ymda;
}elseif($i === 27){
$ymd27 = $ymda;
}elseif($i === 26){
$ymd26 = $ymda;
}elseif($i === 25){
$ymd25 = $ymda;
}elseif($i === 24){
$ymd24 = $ymda;
}elseif($i === 23){
$ymd23 = $ymda;
}elseif($i === 22){
$ymd22 = $ymda;
}elseif($i === 21){
$ymd21 = $ymda;
}elseif($i === 20){
$ymd20 = $ymda;
}elseif($i === 19){
$ymd19 = $ymda;
}elseif($i === 18){
$ymd18 = $ymda;
}elseif($i === 17){
$ymd17 = $ymda;
}elseif($i === 16){
$ymd16 = $ymda;
}elseif($i === 15){
$ymd15 = $ymda;
}elseif($i === 14){
$ymd14 = $ymda;
}elseif($i === 13){
$ymd13 = $ymda;
}elseif($i === 12){
$ymd12 = $ymda;
}elseif($i === 11){
$ymd11 = $ymda;
}elseif($i === 10){
$ymd10 = $ymda;
}elseif($i === 9){
$ymd9 = $ymda;
}elseif($i === 8){
$ymd8 = $ymda;
}elseif($i === 7){
$ymd7 = $ymda;
}elseif($i === 6){
$ymd6 = $ymda;
}elseif($i === 5){
$ymd5 = $ymda;
}elseif($i === 4){
$ymd4 = $ymda;
}elseif($i === 3){
$ymd3 = $ymda;
}elseif($i === 2){
$ymd2 = $ymda;
}elseif($i === 1){
$ymd1 = $ymda;
}elseif($i === 0){
$ymd0 = $ymda;
}
$hours = NULL;
$channel_free = NULL;
$channel_pay = NULL;
$stmt = NULL;
$row = NULL;
$stmt = $pdo->prepare('SELECT * FROM channel_data_ave WHERE date=:ymd AND delflag=0 ORDER BY id ASC');
$stmt->bindValue(':ymd', $ymd, PDO::PARAM_STR);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$hours = $row['hours'];
$channel_free = $row['channel_free'];
$channel_pay = $row['channel_pay'];
if($channel_free >= 80){
$channel_free2 = '<font class="red">'.$channel_free.'</font>';
}else{
$channel_free2 = $channel_free;
}
if($channel_pay >= 7){
$channel_pay2 = '<font class="red">'.$channel_pay.'</font>';
}else{
$channel_pay2 = $channel_pay;
}
//データ作成
if($i === 30){
$view30 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 29){
$view29 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 28){
$view28 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 27){
$view27 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 26){
$view26 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 25){
$view25 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 24){
$view24 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 23){
$view23 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 22){
$view22 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 21){
$view21 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 20){
$view20 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 19){
$view19 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 18){
$view18 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 17){
$view17 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 16){
$view16 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 15){
$view15 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 14){
$view14 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 13){
$view13 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 12){
$view12 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 11){
$view11 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 10){
$view10 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 9){
$view9 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 8){
$view8 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 7){
$view7 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 6){
$view6 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 5){
$view5 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 4){
$view4 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 3){
$view3 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 2){
$view2 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 1){
$view1 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}elseif($i === 0){
$view0 .= '<div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar" data-value="'.$channel_free.'"></div></div><span class="number">'.$channel_free2.'%</span></div><div class="row"><span class="label">'.$hours.'時</span><div class="bar-wrap"><div class="bar bar2" data-value="'.$channel_pay.'"></div></div><span class="number">'.$channel_pay2.'%</span></div><div class="chart-h"></div>';
}
}
}
?>
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>接続率</title>
<!-- Google Fontsの指定 -->
<link href="https://fonts.googleapis.com/css2?family=Lato:ital,wght@1,700&family=Montserrat:wght@700&family=Noto+Serif+JP:wght@500&display=swap" rel="stylesheet">
<!-- FontAwesome -->
<link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet">
<script src="https://kit.fontawesome.com/b4de523845.js" crossorigin="anonymous"></script>
<!-- viewport -->
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
</head>
<body>
<div class="main-contents">
<div class="textcenter"><b>日時別接続率(過去30日分)</b></div>
<br>
<div class="textcenter">
FC2ライブ(アダルト)の日時別接続率データです。<br>
接続率は小数点以下切り捨てで表示しています。<br>
目安としてご利用ください。<br>
</div>
<div class="textcenter">
<font style="color:#7fc3ff;">■</font>無料配信
<font style="color:#fca9e1;">■</font>有料配信
</div>
<br>
<div class="chart-wrap">
<div id="dashboard-stats" class="chart bars-horizontal brand-primary">
<!-- 0日前 -->
<div class="chart-title"><?=$ymd0?></div>
<?=$view0?>
<!-- 1日前 -->
<div class="chart-title"><?=$ymd1?></div>
<?=$view1?>
<!-- 2日前 -->
<div class="chart-title"><?=$ymd2?></div>
<?=$view2?>
<!-- 3日前 -->
<div class="chart-title"><?=$ymd3?></div>
<?=$view3?>
<!-- 4日前 -->
<div class="chart-title"><?=$ymd4?></div>
<?=$view4?>
<!-- 5日前 -->
<div class="chart-title"><?=$ymd5?></div>
<?=$view5?>
<!-- 6日前 -->
<div class="chart-title"><?=$ymd6?></div>
<?=$view6?>
<!-- 7日前 -->
<div class="chart-title"><?=$ymd7?></div>
<?=$view7?>
<!-- 8日前 -->
<div class="chart-title"><?=$ymd8?></div>
<?=$view8?>
<!-- 9日前 -->
<div class="chart-title"><?=$ymd9?></div>
<?=$view9?>
<!-- 10日前 -->
<div class="chart-title"><?=$ymd10?></div>
<?=$view10?>
<!-- 11日前 -->
<div class="chart-title"><?=$ymd11?></div>
<?=$view11?>
<!-- 12日前 -->
<div class="chart-title"><?=$ymd12?></div>
<?=$view12?>
<!-- 13日前 -->
<div class="chart-title"><?=$ymd13?></div>
<?=$view13?>
<!-- 14日前 -->
<div class="chart-title"><?=$ymd14?></div>
<?=$view14?>
<!-- 15日前 -->
<div class="chart-title"><?=$ymd15?></div>
<?=$view15?>
<!-- 16日前 -->
<div class="chart-title"><?=$ymd16?></div>
<?=$view16?>
<!-- 17日前 -->
<div class="chart-title"><?=$ymd17?></div>
<?=$view17?>
<!-- 18日前 -->
<div class="chart-title"><?=$ymd18?></div>
<?=$view18?>
<!-- 19日前 -->
<div class="chart-title"><?=$ymd19?></div>
<?=$view19?>
<!-- 20日前 -->
<div class="chart-title"><?=$ymd20?></div>
<?=$view20?>
<!-- 21日前 -->
<div class="chart-title"><?=$ymd21?></div>
<?=$view21?>
<!-- 22日前 -->
<div class="chart-title"><?=$ymd22?></div>
<?=$view22?>
<!-- 23日前 -->
<div class="chart-title"><?=$ymd23?></div>
<?=$view23?>
<!-- 24日前 -->
<div class="chart-title"><?=$ymd24?></div>
<?=$view24?>
<!-- 25日前 -->
<div class="chart-title"><?=$ymd25?></div>
<?=$view25?>
<!-- 26日前 -->
<div class="chart-title"><?=$ymd26?></div>
<?=$view26?>
<!-- 27日前 -->
<div class="chart-title"><?=$ymd27?></div>
<?=$view27?>
<!-- 28日前 -->
<div class="chart-title"><?=$ymd28?></div>
<?=$view28?>
<!-- 29日前 -->
<div class="chart-title"><?=$ymd29?></div>
<?=$view29?>
<!-- 30日前 -->
<div class="chart-title"><?=$ymd30?></div>
<?=$view30?>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<script>
(function($) {
function generateBarGraph(wrapper) {
// Set Up Values Array
var values = [];
// Get Values and save to Array
$(wrapper + ' .bar').each(function(index, el) {
values.push($(this).data('value'));
});
// Get Max Value From Array
//var max_value = Math.max.apply(Math, values);
var max_value = 100;
// Set width of bar to percent of max value
$(wrapper + ' .bar').each(function(index, el) {
var bar = $(this),
value = bar.data('value'),
percent = Math.ceil((value / max_value) * 100);
// Set Width & Add Class
bar.width(percent + '%');
bar.addClass('in');
});
}
// Generate the bar graph on window load...
$(window).on('load', function(event) {
generateBarGraph('#dashboard-stats');
});
})(jQuery);
</script>
</body>
</html>
コードをザックリと紹介していますので、細かい部分については各自で追記をお願いします。
この記事が気に入ったらサポートをしてみませんか?