好的,假设您的网站过了一阵子。 我们正在谈论搜索引擎,论坛和视频托管-您有很多内容。 您想知道,“为什么我的大型网站还需要其他功能?”
好吧,有些人每次看到您网站上的内容时都会变得健忘,让我们假设有一天他们需要为他们的班级编写一个良好的php脚本,并且他们记得看过您的教程...但是忘记了名称和URL。 如果他们可以返回您的网站,单击“历史记录”链接,然后查看他们在过去一周(或月份或年份或...)中查看了哪些内容,这不是很好。
当然,浏览器也会跟踪您的历史记录,但是浏览器的历史记录非常混乱,有时在历史记录中查找页面所花的时间要比回到站点并随机单击直到找到内容的时间长。您正在寻找!
在开始发布代码及其工作方式之前,我将为您提供我们将要使用的PHP函数的列表。 我为每个函数都提供了指向php.net的链接,以便您可以阅读任何您不了解的内容。
因此,如果您不知道这些功能或文字中的任何一个,请单击链接!
回声 -输出文本/ HTML 的setcookie -设置cookie的值的foreach -通过遍历数组,如果 -条件运算ksort -排序对数组按照键你需要什么1.安装并正确配置了PHP的服务器。
2.一个网站,其中包含您要记录在php中的某些页面。
3. Web服务器中名为“ history.php”的页面。
4.具有中等PHP水平的大脑。
入门:编辑您网站上的页面之一,并将其添加到PHP代码的顶部:
setcookie("The Title of the Page", "http://www.yourdomain.com/path/to/thepage.php", time()+604800);
使用页面标题作为cookie的名称,使用页面的URL作为cookie的值。
顺便说一句,“ time()+ 604800”会将您的Cookie设置为在一周内到期。
现在,每次用户访问该页面时,其浏览器都会设置一个cookie,该cookie将
跟踪他访问过该页面的事实。
在您网站上其他页面的顶部添加类似的代码。
编写代码:创建history.php:
<html>
<head>
<title>History</title>
</head>
<body>
<ul>
<?php
// We'll put stuff here in a second.
?>
</ul>
</body>
</html>
因此,在php标记中输入以下内容:
$page = $_COOKIE;
PHP从我们的站点检索所有cookie,并将它们转换为数组,然后将其分配给名为$ page的变量。
要提取值并按顺序回显它们,请在下面添加以下内容:
ksort($page);
foreach ($page as $key => $val)
{
}
foreach将运行$ page,并将每个键(页面名称)分配给$ key,并将每个值(pge的URL)分配给$ val。
现在,有一个警告。 瞧,我们的脚本不是唯一使用cookie的实体。 例如,PHP添加了一个PHPSESSID cookie(确切名称可以在php.ini中配置),以便它可以识别每台计算机。 因此,我们必须告诉PHP跳过PHPSESSID cookie(也称为“会话cookie”)。
要跳过会话cookie,请将此代码放入foreach循环内。
if ($key != "PHPSESSID")
{
}
注意:
您的网站可能会使用其他与用户历史记录无关的cookie。 您可以将它们添加到if条件中以排除它们,类似于排除会话cookie的方式。
例如,如果您的脚本之一使用名为“ zipCode”的cookie,则可以使用以下方法将其排除在历史页面之外:
if ($key != "PHPSESSID" && $key != "zipCode")
{
}
现在是时候输出历史记录链接了。
在您的if块内,添加以下代码:
echo "<li><a href=\"$val\" title=\"$key\">$key</a></li>";
在这里,我们获得页面和URL的标题,并将它们放入链接中!
完成的产品:
这是历史记录页面的外观:
<html>
<head>
<title>History</title>
</head>
<body>
<ul>
<?php
$page = $_COOKIE;
ksort($page);
foreach ($page as $key => $val)
{
if ($key != "PHPSESSID")
{
echo "<li><a href=\"$val\" title=\"$key\">$key</a></li>";
}
}
?>
</ul>
</body>
</html>
这是我网站上的一个工作示例: 工作示例
谢谢你的时间,
113。
From: https://bytes.com/topic/php/insights/712399-making-history-page-big-sites