【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も同じ場所に用意すること。

使い方

  1. 上記のファイル2つをWebサーバの好きな場所へ置く。(例(インターネット上のパス):www.hogehoge.com/source/php/dlcount.php)
  2. ダウンロードしてほしいファイルを用意する。場所は適当で構わない。(例(インターネット上のパス):www.hogehoge.com/dls/windows/start.zip)
  3. ダウンロードページにあるダウンロードリンクを、「dlcount.phpのある場所」?file=「ダウンロードしてほしいファイルのある場所 からhttp://を削除した文字」にする。(例:<a href="http://www.hoge.com/source/php/dlcount.php?file=www.hoge.com/dls/windows/start.zip">ダウンロード</a>)わかりにくいね!
  4. ダウンロード数を見たいときは、dlcount.txtにアクセスしてみよう。ちなみに、通常の状態では誰でも見られてしまうので、.htaccessなどでアクセス制御をすること

コメント

このブログの人気の投稿

Ryzen 7 5800X & DDR4 128GB 搭載PCを組む

HTTP通信のGET、POSTの違い