597
文章
·
92035
阅读
597
文章
·
92035
阅读

有50人阅读过 一个简单的网页点击次数计数器php
发布于2025/08/14 更新于2025/08/14
[ 教程仅保证更新时有效,请自行测试。]

使用php写的一个简单的按钮点击次数计数器,提供计数和读数查询接口:

计数:?key={计数字段}&action=hit

读数:?key={计数字段}&action=get


下载php: 

count.rar


后端会以json格式记录对应字段的点击次数:

{
    "xxx": 8,
    "SPKServer": 2,
    "MyTVAdmin": 6,
    "ffmpeg7": 1,
    "gitea": 1,
    "TVBox": 3,
    "transmission": 1,
    "zblog": 2
}


代码:

<?php
// 允许跨域
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");
header("Content-Type: application/json; charset=utf-8");

// 处理 OPTIONS 预检请求
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(204);
    exit;
}

$key = isset($_GET['key']) ? preg_replace('/[^a-zA-Z0-9_-]/', '', $_GET['key']) : 'default';
$action = isset($_GET['action']) ? $_GET['action'] : 'get';

$file = __DIR__ . "/counts.json";

// 初始化文件
if (!file_exists($file)) {
    file_put_contents($file, json_encode(new stdClass()));
}

$data = json_decode(file_get_contents($file), true);
if (!is_array($data)) {
    $data = [];
}

if ($action === "hit") {
    if (!isset($data[$key])) {
        $data[$key] = 0;
    }
    $data[$key]++;
    file_put_contents($file, json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
}

$count = isset($data[$key]) ? $data[$key] : 0;

echo json_encode([
    "key" => $key,
    "value" => $count
], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);


此代码中有一个允许跨域的设置,其他程序中如果需要用到不同域名之间的调用,可以参考此设置:

// 允许跨域
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");


文章对你有帮助吗?
  • 一般[0]
  • 很赞[0]
  • 没用[0]
  • 垃圾[0]
  • 无语[0]
扫一扫,手机浏览手机访问本站