ダウンロード数のカウントを無料配布PHPで軽量に簡単実装!プラグイン不要

サイト上で、何らかのファイルをダウンロードできるようにしている場合、どのファイルがどのくらいダウンロードされているか、カウントしたい所です。

今回は、

無料で配布されているPHPファイルで、簡単に軽量に実装する方法です。

 


 

はじめに

PHPアップロードでのメリット

プラグインより 断然 軽量! PHPファイルはたったの15KB

 

WordPressでダウンロードの数をカウントしてくれるプラグインは、有名どころで「Download Manager」があります。

この「Download Manager」。

当初、当サイトも利用してみたのですが、以下の理由で使うのをやめました。

ページスピードを測るサイトで、改善できる点として「不要なCSSを読み込まないようにしろ」と出て、そこにずらずら~っと並んでいたのが「Download Manager」のCSSでした。

実際使っていないし、CSSだけ削除してやろうかと、このプラグインのディレクトリを見てみてると、相当なファイル数。しかも使わないもの多数!

ちなみにプラグインのファイル(全体)サイズは、5.75MBもありました。
※利用していたバージョンは 3.0.1

これはCSSファイル削除だけでなく、このプラグインの利用をやめようと思い、PHPで実装する事にしました。

 

プラグインのメリット

  • PHPファイル編集などの必要がない
  • FTP操作の必要がない
  • アイコン表示やデザイン設定が可能

PHP編集が面倒な方や、見た目にアイコンなどが欲しい方は、言っても利用者の多い有名プラグインなので「Download Manager」を使う手もあります。

 

うちは個人的に、少しでも軽い事の方を重要視しているので、選択肢はPHPになりました。

利用させて頂いたのは、無料で便利なツール(PHP)を配布されているサイト「PHP工房」さんのダウンロードカウンター。

PHP工房|フリー(無料)版、多機能プロ版のPHPプログラム、CMSを配布しています
メールフォームや新着情報、更新情報(更新履歴)、お知らせ、画像ギャラリー、画像アップローダーなど現在のホームページに組み込める様々なフリー(無料)、高機能プロ版のPHPプログラム、CMSを配布しています。

用意するもの

ダウンロードカウンター

上記の通り、無料配布のPHP工房さんから、「ダウンロードカウンター」をダウンロードします。

ダウンロード(クリック)カウンター(フリーBeta版)

 

FTPクライアント

ダウンロードしたPHPファイルを編集し、サーバーへアップロードするのに使います。

FTPについては以下をご覧ください。

FTPクライアントの使い方(FFFTP)とワードプレスのファイル構成
今回は、私が何十年も変わらず使っているソフト「FFFTP」でFTPクライアントの使い方と、ワードプレスでのファイル構成を紹介します。 既にワードプレスが稼働している方向けの説明になっています。 ワードプレスをこれからインストールされる方は以...

 

ダウンロードするファイル

ダウンロードする為のファイルは、メディアにアップロードしておきます。

 

 

設定方法

当サイトで行った以下の設置例での説明です。

  • ダウンロードリンクにはカウント数を表示しない
  • カウント数の確認は管理人のみ可能
  • カウント数は日別などの詳細ではなく全ダウンロード数のみ(履歴はそもそもそう)

ダウンロードリンクにカウントを表示しないようにした為、カウントを表示させたい箇所に記述するscriptタグの記載位置は、当サイトではPHPファイル内にした為、その点についても解説。

逆に表示させたい場合は、以下のように、総ダウンロード数の他、今日と昨日の数字表示も可能なので、PHP工房さんのサイトをご覧ください。

 

ダウンロード~解凍

以下のページからダウンロードして下さい。

ダウンロード(クリック)カウンター(フリーBeta版)

 

画面をスクロールすると「ダウンロードカウンター」のダウンロードリンクがあります。

 

 

ダウンロードした「download_count.zip」ファイルを解凍します。

解凍すると「download_count」ディレクトリが出来、中にはPHPファイルとdataディレクトリがあります。(dataディレクトリは空(から))

 

PHPファイルの設定

download.php を開き編集します。

 

ダウンロードファイルのアドレス設定

メディアアップロードしてあるダウンロード対象のファイルへの絶対パスを指定します。

 

メディア一覧から対象のファイルの詳細を開き、アドレスをコピー

 

以下の部分を書き換えます。

'1' => 'http://xxxxx.xxxxxx/xxxxx.zip',

50行目あたりにあります。

 

ダウンロード対象が複数ある場合は、最初の数字部分をカウントアップして変更しながら追記します。

'1' => 'http://xxxxx.xxxxxx/xxxxx.zip',
'2' => 'http://xxxxx.xxxxxx/xxxxx.zip',
'3' => 'http://xxxxx.xxxxxx/xxxxx.zip',

 

認証用ID・パスの設定

ダウンロード履歴を閲覧する為のIDとパスワードを変更します。

60行目あたりにあります。

 

$userid   = 'XXXXX';   // ユーザーID
$password = 'XXXXX';   // パスワード

 

 

カウント表示要タグ記述

PHP工房さんの説明では設定箇所は上記2点ですが、カウントを表示させたい箇所に記述するscriptタグもPHPファイル内に記述します。

うちではページ内にカウント数を表示しない為、この方法にしましたが、

ダウンロードファイルがあるページ内にカウントを表示したい場合は、スクリプトタグをページ内に追記して下さい。

 

実際に履歴を表示する画面での記述が、download.phpの下の方にありますので、<head>~</head>の間に必要なタグを追記します。

256~260行目あたりにあります。

 

以下のタグを記述します。

※パスはご自身の環境に合わせて変更して下さい。

<script type="text/javascript" src="download_count/download.php?dsp_count=1"></script>
「dsp_count=1」の部分はダウンロードファイルの絶対パスで設定したダウンロード番号です。

複数ある場合は、複数行記述します。

<script type="text/javascript" src="download_count/download.php?dsp_count=1"></script>
<script type="text/javascript" src="download_count/download.php?dsp_count=2"></script>

 

 

 

アップロードする

最初にこのPHPファイルを置く、サーバーの場所を決めます。

※以下、WordPressでの設置例です。

wp-content内にアップロードしますが、その中であれば、更に深い階層でもOK。

 

たとえば「wp-content」内に、自分でアップロードしたファイルを入れる「library」というディレクトリを設置し、その中に入れる。

wp-contentlibrarydownload_count

 

場所を決めたら

FTPで「download_count」ディレクトリごとアップロードします。

 

dataディレクトリを書き込み可能なパーミッションに変更します。

※うちでは766にしました。

 

この「data」ディレクトリ内に、ダウンロード番号ごとのファイルが作成され、ダウンロードされた日付ごとに1行のログが追記されていきます。

download_count_1.log

<中身>

2019/09/03,12
2019/09/02,10
….

※テキストが日付ごとに1行ずつ追加されるだけなので、ログファイルのサイズも極小。

 

以上で設定・準備は完了です。

 

ダウンロードリンクを貼る

リンクを貼りたい記事内の場所に以下を記述します。

※パス、ダウンロード番号はご自身の環境に合わせて変更して下さい。

<a href="download_count/download.php?download=1">ダウンロードはこちら</a>

 

「ダウンロードはこちら」の文字列ももちろん、お好きなように変更を。

 

 

ダウンロード履歴を見る

実際のカウント数を見るには、ブラウザでdownload.phpのあるアドレスを開きます。

例:https://XXXX.net/wp-content/download_count/download.php

 

PHPファイルに設定したIDとパスワードを入力し、閲覧画面を開きます。

 

 

ダウンロードファイルごとにカウントが集計されて日付別に表示されます。

※日付が歯抜け(無い)の場合はダウンロードが「0」

 

以上です。

綾糸: 綾糸 主婦 1990年代、汎用機時代のエンジニア 趣味で長くやっていたweb制作は、未だにエディタでの手コーティング 現在は自宅でゆるりとweb制作やライターをしています