【php】ダウンロード回数をカウントするやつ
ファイルのダウンロード回数をカウントしてファイルに記録する奴。
ダウンロード回数のカウントにphp、ダウンロード先へのリダイレクトにjavascriptを使用している。
コード
dlcount.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8"/>
<title>ちょっとまってね</title>
<meta name="robots" content="noindex">
</head>
<body>
<?php
$DownloadFile = $_GET['file'];
echo "ファイル '".$_GET['file']."' をダウンロードしています...<br>\n";
echo "ダウンロードが始まらない場合は、下にある「ダウンロード」をクリックしてください。<br>\n";
$file_path = 'dlcount.txt';
$file_data = file($file_path);
$findFlag = false;
foreach($file_data as &$file_data_splt)
{
if($file_data_splt != '')
{
$file_data_splt_exp = explode(':', $file_data_splt);
if($file_data_splt_exp[0] == $DownloadFile)
{
$tmp = (int)$file_data_splt_exp[1];
$tmp ++;
$file_data_splt_exp[1] = (string)$tmp;
$file_data_splt = $file_data_splt_exp[0].':'.$file_data_splt_exp[1]."\n";
$findFlag = true;
}
}
}
unset($file_data_splt);
if(!$findFlag)
{
$file_data[count($file_data)] = $DownloadFile.":1\n";
}
file_put_contents($file_path, $file_data);
if($DownloadFile != '')
{
echo '<a href="https://'.$DownloadFile.'">ダウンロード</a>';
echo '<script type="text/javascript">';
echo "location.href = 'https://".$DownloadFile."'";
echo '</script>';
}
?>
</body>
</html>
これとは別に、dlcount.txtも同じ場所に用意すること。
使い方
- 上記のファイル2つをWebサーバの好きな場所へ置く。(例(インターネット上のパス):www.hogehoge.com/source/php/dlcount.php)
- ダウンロードしてほしいファイルを用意する。場所は適当で構わない。(例(インターネット上のパス):www.hogehoge.com/dls/windows/start.zip)
- ダウンロードページにあるダウンロードリンクを、「dlcount.phpのある場所」?file=「ダウンロードしてほしいファイルのある場所 からhttp://を削除した文字」にする。(例:<a href="http://www.hoge.com/source/php/dlcount.php?file=www.hoge.com/dls/windows/start.zip">ダウンロード</a>)わかりにくいね!
- ダウンロード数を見たいときは、dlcount.txtにアクセスしてみよう。ちなみに、通常の状態では誰でも見られてしまうので、.htaccessなどでアクセス制御をすること。
コメント
コメントを投稿