<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>页面计数器归档 - 日志</title>
	<atom:link href="https://www.log.show/tag/%E9%A1%B5%E9%9D%A2%E8%AE%A1%E6%95%B0%E5%99%A8/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.log.show/tag/页面计数器/</link>
	<description>LOG.SHOW</description>
	<lastBuildDate>Thu, 27 Nov 2025 02:45:47 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.log.show/wp-content/uploads/2025/11/cropped-logo-32x32.png</url>
	<title>页面计数器归档 - 日志</title>
	<link>https://www.log.show/tag/页面计数器/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>一个简单的PHP统计脚本</title>
		<link>https://www.log.show/log/a-analytics-way-by-php/</link>
					<comments>https://www.log.show/log/a-analytics-way-by-php/#respond</comments>
		
		<dc:creator><![CDATA[LOGGER]]></dc:creator>
		<pubDate>Thu, 27 Nov 2025 02:45:46 +0000</pubDate>
				<category><![CDATA[LOG]]></category>
		<category><![CDATA[INSERT ON DUPLICATE KEY UPDATE]]></category>
		<category><![CDATA[MySQL数据库]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web开发]]></category>
		<category><![CDATA[数据库连接]]></category>
		<category><![CDATA[网站访问统计]]></category>
		<category><![CDATA[网页计数]]></category>
		<category><![CDATA[访客量]]></category>
		<category><![CDATA[页面浏览次数]]></category>
		<category><![CDATA[页面计数器]]></category>
		<guid isPermaLink="false">https://log.show/?p=352</guid>

					<description><![CDATA[<p>你在本网站的每个页面页脚处会看到当前页面被访问次数。这个实现方案其实很简单。我之前做过一个全站的访问次数显示。 [&#8230;]</p>
<p><a href="https://www.log.show/log/a-analytics-way-by-php/">一个简单的PHP统计脚本</a>最先出现在<a href="https://www.log.show">日志</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">你在本网站的每个页面页脚处会看到当前页面被访问次数。这个实现方案其实很简单。我之前做过一个全站的访问次数显示。每次刷新页面访问次数都会+1。</p>



<p class="wp-block-paragraph">昨天修改了一下，现在会分别统计每个页面的访问次数。</p>



<pre class="wp-block-code"><code>&lt;?php
// 获取当前页面路径
// 使用 $_SERVER&#91;"REQUEST_URI"] 获取完整的请求 URI
// strtok() 用于移除查询参数（例如 ?id=123），以确保 /post/1 和 /post/1?ref=xyz 被视为同一个页面
$current_path = strtok($_SERVER&#91;"REQUEST_URI"], '?');

// 数据库配置 (请根据您的实际环境修改)
$servername = "localhost";
$username = "数据库用户名";
$password = "数据库密码";
$dbname = "数据库名";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname, 3306);

// 检查连接
if ($conn->connect_error) {
    // 记录错误，但不对用户显示敏感信息，也不中断页面加载
    error_log("Database connection failed: " . $conn->connect_error);
    // 可选：显示一个友好的提示，但我们尽量保持沉默
    echo "&lt;span style='color:red;'>&#91;统计服务连接失败]&lt;/span>";
    return; // 退出脚本，避免后续错误
}

$current_views = 0;

try {
    // --- 步骤 1: 记录并更新访问量 ---
    // 使用 INSERT ... ON DUPLICATE KEY UPDATE: 
    // 尝试插入新路径，如果 page_path 已存在 (DUPLICATE KEY)，则执行 UPDATE 操作，将 visit_count + 1
    $sql_update = "
        INSERT INTO page_statistics (page_path, visit_count)
        VALUES (?, 1)
        ON DUPLICATE KEY UPDATE visit_count = visit_count + 1
    ";

    $stmt_update = $conn->prepare($sql_update);
    // 's' 表示绑定变量类型为 string
    $stmt_update->bind_param("s", $current_path); 
    $stmt_update->execute();
    $stmt_update->close();

    // --- 步骤 2: 获取最新的访问量 ---
    $sql_select = "SELECT visit_count FROM page_statistics WHERE page_path = ?";
    $stmt_select = $conn->prepare($sql_select);
    $stmt_select->bind_param("s", $current_path); 
    $stmt_select->execute();
    
    $result = $stmt_select->get_result();

    if ($row = $result->fetch_assoc()) {
        $current_views = $row&#91;'visit_count'];
    }

    $stmt_select->close();

} catch (Exception $e) {
    error_log("Page counter error: " . $e->getMessage());
    $current_views = '错误';
}

// 关闭连接
$conn->close();
?>

&lt;!-- HTML 输出部分 -->
&lt;p class="textwp-copyright">
当前页面浏览次数: &lt;?php echo htmlspecialchars($current_views); ?>
&lt;/p></code></pre>



<p class="wp-block-paragraph">使用之前需要新建表，可是使用下面的语句</p>



<pre class="wp-block-code"><code>-- 建议使用新表名 page_statistics 以区分按路径统计
CREATE TABLE page_statistics (
    id INT AUTO_INCREMENT PRIMARY KEY,
    -- 存储完整的页面路径，例如：/post/my-article-title
    page_path VARCHAR(500) NOT NULL UNIQUE,
    visit_count BIGINT NOT NULL DEFAULT 0,
    -- 为 page_path 添加索引以加快查询速度
    INDEX (page_path)
);</code></pre>



<p class="wp-block-paragraph">使用的时候，你希望它在哪里显示，直接加上下面的代码就可以了</p>



<pre class="wp-block-code"><code>&lt;?php include 'counter.php'; ?></code></pre>
<p><a href="https://www.log.show/log/a-analytics-way-by-php/">一个简单的PHP统计脚本</a>最先出现在<a href="https://www.log.show">日志</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.log.show/log/a-analytics-way-by-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
