代码之家  ›  专栏  ›  技术社区  ›  dzenesiz

确定网页被访问[关闭]的次数

  •  -1
  • dzenesiz  · 技术社区  · 9 年前

    我想知道是否有办法确定特定网页在服务器上被访问了多少次。如果可能的话,我想通过cPanel来做这件事,因为这个网站是用Wordpress制作的,但我从零开始制作的有问题的页面,刚刚上传到另一个目录中。所以,我不能依赖插件(对吧?)我不知道足够的PHP或JavaScript来与web服务器通信并将信息存储在上面。。。

    2 回复  |  直到 9 年前
        1
  •  1
  •   marc_s    9 年前

    您的服务器已经在这样做了,它被称为 日志文件 。如果您为给定的页面进行grep并统计日志条目的数量,您将获得查看该页面的访问者的数量。然而,这是低效的,不能“与CPanel一起工作”。

    接下来,你可以 编写一个简单的脚本 每次有人访问该页面时,向数据库插入一个条目。然后,可以通过添加到CPanel中的自定义PHP查询您的答案。这样做效率更高,但会重新发明轮子。

    但是,真正的答案是获取分析软件。有许多产品可以为您做到这一点:

    • 谷歌分析 -这是一款谷歌产品,它收集了大量不同类型的用户信息,生成了强大的报告,并且可以在网上免费获得。它有将数据提供给谷歌的缺点-因此,如果你有隐私政策,你应该特别调用谷歌分析跟踪你正在做的事情。

    • 皮维克 -这可以让云托管,也可以自己托管。这是一个免费的开源软件,它完成了谷歌分析的大部分工作。您将拥有您的数据,并且数据将驻留在您的服务器上,有一些小部件可以嵌入页面中,这样一些工作可以集成到CPanel中。这些报告不像Google Analytics那样精美,但这可能是值得的。

        2
  •  1
  •   Emil S. Jørgensen    9 年前

    如果您使用 include 在PHP中,您可以创建一个统计PHP文件,并将其包含在所有页面中。

    最简单的方法是创建一个日志文件。

    使用 file_put_contents 您可以轻松地将数据附加到日志文件中,然后可以下载或通过您选择的FTP访问该文件。(就像cpanel)

    <?php
    session_start();
    if(!isset($_SESSION['mySiteWasAccessed'])) {
        $_SESSION['mySiteWasAccessed'] = true;
        file_put_contents("my_log_file.txt", "My page was accessed", FILE_APPEND | LOCK_EX);
    }
    ?>
    

    上面的代码将在唯一用户第一次访问脚本时向.TXT文件中写入一行。

    现在,您只需要在站点的每个页面上包含一个包含此信息的.PHP文件。

    有关文档、指针、示例和一般帮助,请参见以下链接:

    http://php.net/manual/en/function.file-put-contents.php

    http://php.net/manual/en/function.include.php

    如果您想获得高级信息,可以查看邮件功能中的通知方法:

    http://php.net/manual/en/function.mail.php