0
While($enreg=mysql_fetch_array($res))
{
   $link_d.="<a href=\"$enreg[link]\" target=\"_blank\"><font color=\"red\">clic here to download</font></a></td>"
}

私はhrefを使用してダウンロードリンクにつながり、IDをphpファイルに送信して、ファイルがダウンロードされた回数を取得したい! どうすれば href を複数のリンクに使用できますか!

4

4 に答える 4

1

理想的には、それが人間によるダウンロードかどうかを確認するためのいくつかのチェックが必要です (Web クローラーがそれをトリガーする可能性があります。リンクに no-follow を追加しますが、これは役に立ちます)。データベースを使用することもできますが、それはより複雑になります。私の好みの方法は、Google アナリティクス イベントを使用することです。しかし、他のソリューションの複雑さなしにニーズを満たす単純な PHP スクリプトを次に示します。

最初にリンクを変更して、トラッカー スクリプトを作成し、urlencode にします。

$link_d.= '<a style="color:red" href="tracker.php?url='.urlencode($enreg[link]).'" target="_blank">click here to download</a>';

}

次に、ダウンロードを記録するスクリプトを作成します (tracker.php)

 <?php

// keep stats in a file - you can change the path to have it be below server root
// or just use a secret name - must be writeable by server
$statsfile = 'stats.txt';

// only do something if there is a url
if(isset($_GET['url'])) {

  //decode it
  $url = urldecode($_GET['url']);

  // Do whatever check you want here to see if it's a valud link - you can add a regex for a URL for example
  if(strpos($url, 'http') != -1) {

    // load current data into an array
    $lines = file($statsfile);

    // parse array into something useable by php
    $stats = array();
    foreach($lines as $line) {
      $bits = explode('|', $line);
      $stats[(string)$bits[0]] = (int)$bits[1];
    }

    // see if there is an entry already
    if(!isset($stats[$url])) {

      // no so let's add it with a count of 1
      $stats[$url] = 1;

    } else {

      // yes let's increment
      $stats[$url]++;

    }
    // get a blank string to write to file
    $data = null;

    // get our array into some human readabke format
    foreach($stats as $url => $count) {
      $data .= $url.'|'.$count."\n";
    }

    // and write to file
    file_put_contents($statsfile, $data);
  }

  // now redirect to file
  header('Location: ' . $url);

}
于 2013-08-12T01:52:55.170 に答える
0

できません。

アンカーは、1 つのリソースにつながることを意図しています。

やりたいことは、通常、ヒットをカウントしてリソースにリダイレクトする中間スクリプトを使用して対処されます。

例えば。

<a href="redirect.php?id=42">Click here to download</a>

リダイレクト.php

// Increment for example, a database :
// UPDATE downloads SET hits = (hits + 1) WHERE id=42

// Get the URI
// SELECT uri FROM downloads WHERE id=42

// Redirect to the URI
// (You may also need to set Content-type header for file downloads)
header( "Location: $uri" );

URI を 2 番目のパラメーターとして渡すことでこれを最適化し、リダイレクト時に取得する必要がないようにすることができます。

<a href="redirect.php?id=42&uri=/files/example.pdf">Click here to download</a>

この種の統計を収集するもう 1 つの方法は、Google アナリティクスや Piwik などの統計プロバイダーが提供する JavaScript ツールを使用して、クリック イベントにリスナーを追加することです。

基本コードへの侵襲性は低くなりますが、収集したデータをサイトで簡単に再利用することはできません (たとえば、「トップ ダウンロード」リストを表示する場合)。

于 2013-08-12T01:37:43.163 に答える
0

たとえばdownload.php、ダウンロード スクリプトを使用してファイルを作成し、すべてのダウンロードをそれを通じてルーティングします。このページでカウンターを更新し、ダウンロードに適切なヘッダーを使用してください。

例えば:

URLはdownload.php?id=1&file=yourfile

download.php

//get id and file
//database operation to update your count
//headers for download
于 2013-08-12T01:39:36.970 に答える