0

我的网络服务器上有一个包含大量 PNG 图像的文件夹。我想将每个图像获得的视图数量存储在数据库中。我真的不知道如何实现这一目标。我只能考虑使用 .htaccess 文件将该文件夹中的 url 重写为一个 php 脚本,该脚本将提供这些图像并将访问存储在 MySQL 上。但也许有比通过 PHP 脚本提供所有图像更好的方法。我正在寻找最简单的方法来做到这一点。而且,当前的网址不应更改。

4

2 回答 2

3

没有单一的“好”方法可以做到这一点。但我猫给你的想法很少。

  1. 推荐)制作一个代理PHP脚本,它将获取图片的ID(可以是文件名)。它将增加数据库中的计数器,然后重定向到原始图像。

    这是实现预期行为的非常明确的方法。缺点是它会更改当前文件名。所以你必须使用以下模式

    CURRENT_URL -> (mod_rewrite) -> PHP PROXY SCRIPT -> NEW_URL

  2. 将所有图像 url 重定向到 PHP 代理脚本,该脚本将直接服务器图像(设置适当的标题和文件的输出内容)。

    这是 100% 透明的方法,但明显的缺点是每个图像都由 PHP 处理。因此,当您的服务器负载很重时,这可能是个问题。

  3. 如果您有权访问 Web 服务器的日志(access.log对于 Apache),您可以每天处理一次此文件并更新数据库中的计数器。当近似值足够好并且您的服务器负载很重时,这非常好,因为您可以在不同的机器上解析日志。

于 2013-10-21T14:02:57.933 回答
0

Apache 已经保存了所有请求的日志文件 ( /var/log/apache2/access.log)。该文件包含请求的 URL、请求时间等。

一种可能的方法是:

  • 创建一个解析访问日志并更新数据库的脚本
  • 配置一个定时调用脚本的 cronjob
于 2013-10-21T14:06:12.377 回答