Contador de Downloads
Programa de Visualização de Histórico de Downloads
= Baixar e Instalar Código PHP =
Esta é uma introdução a um programa que permite saber o número de downloads quando um usuário de uma página da web baixa e usa um programa. É possível configurar um contador de downloads na página, e os administradores do site também podem verificar facilmente o histórico de downloads no navegador.
Nota: Se uma página com um link de download exibir uma mensagem pedindo para salvar o arquivo e for fechada sem iniciar o download, ainda será contado como um download. Isso ocorre porque ele conta o número de cliques no link.
A partir desta página, baixe o arquivo compactado "zip" do programa e o instale em seu próprio site. O arquivo é chamado "count.php", mas você pode renomeá-lo.
Você tem a liberdade de usar e modificar o código, incluindo a alteração do design da página.
Modifique o código para adicionar novas funções ou alterar o design e criar uma página fácil de entender e usar.
Descompacte o arquivo "count.php.zip" baixado, e um arquivo chamado "count.php" será criado. Por favor, crie um diretório como "download_history" e salve-o lá.
O arquivo "zip" contém apenas um arquivo, "count.php", e a "tela de login" para o administrador é gerada automaticamente.
Este é o método principal de configuração. Essas partes principais também estão listadas no arquivo PHP.
- Configurações de Senha:
- Uma senha deve ser definida para a página do administrador.
- A senha padrão é "admin", mas altere para uma string de sua escolha.
- Para aumentar a segurança, defina uma senha forte.
- Configurar Arquivos para Download:
- Complete as configurações para "$targetFiles = array()".
- Esta é a parte como "'1' => 'Sua URL/nome do arquivo.zip',".
- Diretório para Salvar Arquivos de Log:
- Um diretório chamado "log" é necessário no servidor remoto para armazenar arquivos de log que registram o histórico.
- Este programa cria automaticamente um diretório chamado "log" quando você faz o upload pela primeira vez. No entanto, se receber uma mensagem como "Sem diretório", crie e faça o upload separadamente.
- Exibição do Histórico de Upload na Primeira Vez:
- Ao fazer o upload pela primeira vez, a "data" e o número "0" podem ser exibidos no histórico.
- Isso ocorre porque arquivos de log como "count_1.log" contendo a data de upload também são gerados no diretório "log" gerado automaticamente.
- Se isso incomodar, faça o download de um arquivo como "count_1.log" do servidor remoto, exclua os dados e faça o upload novamente.
- No entanto, o estado de "data" e "0" também pode ser um histórico de quando o contador foi iniciado. Se houver um download nesse dia, ele será contado.
- Exibição da Página de Visualização do Administrador:
- Quando os administradores visualizam a página, você pode escolher se deseja exibir a URL ou apenas o nome do arquivo.
- Se várias tabelas de histórico estiverem colocadas em uma página, você pode escolher mantê-las na ordem definida por "$targetFiles = array()" ou ordená-las na ordem da data em que novos logs ocorreram.
- Design da Página, CSS, etc.:
- Ajuste o design da página, o CSS, etc., conforme necessário para tornar a página fácil de ler.
- Em um momento, o CSS era escrito como um arquivo externo, mas agora está escrito na mesma página para que você possa se referir às tags ao alterar o CSS.
- Configuração do Link de Download na Página:
- Normalmente, a tag de download <a> é escrita da seguinte forma:
<a href="/download_history/sample.zip" download="File name when downloading.zip">[String Arbitrária]</a>
- Neste programa, escreva a tag de download <a> da seguinte forma:
- Faça corresponder o número em "download=1" ao número definido em "$targetFiles = array()". Essa configuração se refere aos arquivos a serem baixados.
- Faça corresponder o caminho para sua página.
- Faça o upload da página com o link de download após fazer o upload do arquivo com "$targetFiles = array()" (neste exemplo, "count.php").
[Exemplo]Copiar<a href="/download_history/count.php?download=1" download="File name when downloading.zip" target="_blank">[String Arbitrária]</a> - Normalmente, a tag de download <a> é escrita da seguinte forma:
- Código para Exibir o Histórico em Uma Linha:
- Crie o seguinte JavaScript e coloque-o na página em que deseja exibi-lo:
- Faça corresponder o número em "dsp_count=1" ao número definido em "$targetFiles = array()".
- Se excluir "&day_dsp=on,", apenas o "número total" será exibido sem a exibição "hoje/ontem".
- Faça corresponder o caminho para sua página.
[Exemplo]Copiar<script type="text/javascript" src="/download_history/count.php?dsp_count=1&day_dsp=on"></script>Downloads totais: 1865 [Hoje: 23 Ontem: 76]Downloads totais: 1865
Quando exibindo várias tabelas, a configuração padrão deste programa é ordenar pela hora da última atualização. Se deseja ordenar pelo total de downloads, crie um novo arquivo como "total_downloads.php" e substitua a seguinte parte.
- Mudanças nos comentários
Substitua os comentários na seguinte seção:// Escolha se deseja substituir a matriz original por uma nova ordenada na ordem dos novos logs ao exibir várias tabelas em uma página - Mudanças no código e nos comentários
Substitua o código e os comentários na seguinte seção. Considere como um único bloco.// Obtenha os caminhos dos arquivos e suas datas de última atualização (ordenados em ordem decrescente de data) $filePathsAndDates = array(); foreach ($filePath as $key => $path) { if (file_exists($path)) { $filePathsAndDates[$key] = filemtime($path); } else { // Saída deste erro para o log e decida se continua ou aborta o processamento echo "Erro: Arquivo não existe - $path<br>"; } } // Classifique em ordem decrescente pela última data de atualização (a data mais recente vem primeiro) arsort($filePathsAndDates); // Reconstrua a matriz de caminhos de arquivo ordenados $sortedFilePaths = array(); foreach ($filePathsAndDates as $key => $date) { $sortedFilePaths[$key] = $filePath[$key]; }
- Criação e configuração de arquivos
- Ao criar várias páginas, para evitar erros na configuração de itens ao adicionar conteúdo de forma uniforme, crie a seguinte parte do código como um arquivo externo e carregue-o na parte atualmente implementada com um código diferente. Crie um arquivo externo com um nome como "config.php".
// Configuração de arquivos para download. Se houver vários arquivos, adicione-os como '2', '3', '4', etc. '0' também é válido. // Use "http:" ou "https:" para o protocolo. $targetFiles = array( '1' => 'SuaURL/NomeDoArquivo.zip', '2' => 'SuaURL/NomeDoArquivo.pdf', '3' => 'SuaURL/NomeDoArquivo.pdf', '4' => 'SuaURL/NomeDoArquivo.pdf', );
- Código para leitura de arquivos externos e onde colocá-los
- Inclua o arquivo criado com um nome como "config.php" no seguinte local com o código "include __DIR__ . '/config.php';".
- Comente ou exclua a seção a seguir e substitua-a pelo código "include __DIR__ . '/config.php';".
//$targetFiles = array( // '1' => 'SuaURL/NomeDoArquivo.zip', // '2' => 'SuaURL/NomeDoArquivo.pdf', // '3' => 'SuaURL/NomeDoArquivo.pdf', // '4' => 'SuaURL/NomeDoArquivo.pdf', //);
//Array que armazena o número total de downloads $totalDownloads = array(); // Obtém o caminho do arquivo e seu número total de downloads foreach ($filePath as $key => $path) { if (file_exists($path)) { $line = file($path); $total = 0; // Soma o número de downloads para cada linha foreach ($line as $val) { $valArray = explode(',', $val); $total += trim($valArray[1]); } // Armazena o número total de downloads em um array $totalDownloads[$key] = $total; } else { // Envie este erro para o log e decida se deseja continuar ou abortar o processo echo "Erro: o arquivo não existe - $path<br>"; } } // Classifique pelo total de downloads em ordem decrescente arsort($totalDownloads); // Reconstruir matriz de caminhos de arquivos classificados $sortedFilePaths = array(); foreach ($totalDownloads as $key => $total) { $sortedFilePaths[$key] = $filePath[$key]; }
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>DownloadHistory</title> <meta name="robots" content="NOINDEX,NOFOLLOW"> </head> <body> <?php // Transforme apenas esta parte em um arquivo externo e carregue-o na página que você usa com "include __DIR__ . '/config.php';" // Configuração de arquivos para download. Se houver vários arquivos, adicione-os como '2', '3', '4', etc. '0' também é válido. // Use "http:" ou "https:" para o protocolo. $targetFiles = array( '1' => 'SuaURL/NomeDoArquivo.zip', '2' => 'SuaURL/NomeDoArquivo.pdf', '3' => 'SuaURL/NomeDoArquivo.pdf', '4' => 'SuaURL/NomeDoArquivo.pdf', ); ?> </body> </html>
include __DIR__ . '/config.php';
Pode haver erros na redação, pois é uma tradução da versão japonesa. Pedimos desculpas por qualquer inconveniente, mas se houver erros na redação do código, corrija ou ajuste você mesmo.