每次页面重新加载时,根页中都会包含随机模板。如何阻止再次包含相同的模板?
<?php
$templates= array("template1.php","template2.php","template3.php");
$Randomize_templates = $templates[array_rand($templates,1)];
include $Randomize_templates;
?>
例如:
如果已经包含template1.php
,请从数组中删除它。
$templates= array("template2.php","template3.php");
答案 0 :(得分:0)
目前,每次重新加载页面都会将模板数组重置为包含所有模板的原始状态。
您可以通过使用会话和会话变量$_SESSION['templates']
来解决这个问题,最初设置数组(如果它是空的if (empty($_SESSION['templates'])){$_SESSION['templates']= array("template1.php","template2.php","template3.php");}
)并在用户导航时编辑会话变量现场。
该解决方案的替代方案是使用数据库或文本文件,但会话本身最为舒适。
如果用户在您的网站中导航的次数多于可用模板的数量,请考虑可能发生的情况。
答案 1 :(得分:-1)
基本上你可以这样做
那是一个代码示例
if (!isset($_SESSION['templates']) || empty($_SESSION['templates'])) {
$templates = array("t1.php","t2.php","t3.php");
shuffle($templates); // templates are shuffled in place
$_SESSION['templates'] = $templates;
}
// or array_pop that should be faster if you have a huge amount of templates
$currentTemplate = array_shift($_SESSION['templates']);
每次需要执行此类操作时都应包括此内容
重要提示:请确保您的会话已启动,否则请使用session_start()