php包含随机文件,页面加载时不重复

php包含随机文件,页面加载时不重复,php,random,include,glob,Php,Random,Include,Glob,我目前正在使用mt_rand在每次加载页面时显示指定文件夹中的随机文件 在做了大量搜索之后,我想我需要创建一个数组,然后洗牌该数组,但不知道如何进行 我发现的大多数示例都使用数组,然后在我试图包含结果的地方回显结果 <?php $fict = glob("spelling/*.php"); $fictional = $fict[mt_rand(0, count($fict) -1)]; include ($fictional); ?> 您可以使用会话cookie来保存随机的、不重复

我目前正在使用mt_rand在每次加载页面时显示指定文件夹中的随机文件

在做了大量搜索之后,我想我需要创建一个数组,然后洗牌该数组,但不知道如何进行

我发现的大多数示例都使用数组,然后在我试图包含结果的地方回显结果

<?php
$fict = glob("spelling/*.php");
$fictional = $fict[mt_rand(0, count($fict) -1)];
include ($fictional);
?>

您可以使用会话cookie来保存随机的、不重复的文件列表。实际上,为了安全起见,会话cookie应该只将索引列表存储到文件数组中

例如,假设数组中有以下文件列表:

index           file
----------------------------
  0      spelling/file1.txt
  1      spelling/file2.txt
  2      spelling/file3.txt
  3      spelling/file4.txt
我们可以创建一个索引数组,例如
array(0,1,2,3)
,将它们洗牌以获得类似
array(3,2,0,1)
,并将该列表存储在cookie中。然后,当我们通过这个随机索引列表时,我们得到了序列:

spelling/file4.txt
spelling/file3.txt
spelling/file1.txt
spelling/file2.txt
cookie还将当前位置存储在此索引列表中,当它到达末尾时,我们将重新洗牌并重新开始

我意识到所有这些听起来可能有点混乱,所以这个华丽的图表可能会有所帮助:

…或者一些代码:


您的代码片段应该可以完美地工作吗?我不明白你的问题?可能重复抱歉,我只在标题中写了这个,php包含随机文件,页面加载时没有重复。当前,它有时会重复相同的文件。然后,您应该将$FRIVATAL存储在_会话中,并在存在时使用它,如果不使用OPU中的代码,则错误表明
$FRIVATAL[$index]
是空字符串,可能与
glob
有关。注释掉include行并添加
var\u dump($virtualal)。其中一个条目可能为空。还要记住,代码片段不是为了复制/粘贴,而是为了让您朝着正确的方向前进。它不一定普遍适用。