繁体   English   中英

我怎样才能使我的html锚标记链接到与它相同的文件夹中的随机html文件

[英]How can I make my html anchor tag link to a random html file in the same folder as it

我希望用户单击按钮时被定向到同一文件夹内的随机.html页面。 因此,如果index.html,1.html和2.html都位于同一文件夹中,并且用户单击index.html上的按钮,它将随机选择其他2个页面中的任意一个。 谢谢。

可以使用Javascript和PHP获得解决方案。 解决方案背后的逻辑是:

1)我们正在扫描( scandir )整个文件夹中是否存在该文件夹中的所有文件。{ 仅适用于PHP而不适用于Javascript }

2)我们正在计算文件夹中存在的文件数。

3)我们从array [index]中选择一个随机数。

4)我们正在检查随机文件不是当前文件(因此随机文件不是index.html,并且可以是1.html,2.html,3.html,4.html)

Javascipt解决方案:

<script type="text/javascript">
var a=['index.html', '1.html', '2.html'];
var total_no_files = a.length;
var random_no = Math.floor((Math.random() * total_no_files) + 0);

var url = window.location.pathname;
var filename = url.substring(url.lastIndexOf('/')+1);

if(filename != a[random_no]){ document.write('<a href="' + a[random_no] + '">random Link</a>'); }
</script>

PHP解决方案

<?php
$dir = "../Folder/";

// Sort in ascending order - this is default
$a = scandir($dir);

// $a[0]=. $a[1]=..
$total_no_files = count($a)-2;

// We should start from array[2] and go upto the end
$random_no = rand(2, $total_no_files+1);

$url = $_SERVER['REQUEST_URI'];
$end = end((explode('/', $url)));

if($end != $a[$random_no]){ ?><a href="<?php echo $a[$random_no]; ?>">Random Link</a>
<?php } ?>

您可以使用服务器端语言或JavaScript来实现。

对于JS:

<a href="javascript:" id="random">some text</a>

<script type="text/javascript">
  var element = document.getElementByID('random');
  var files = ['1.html','2.html'];
  var index = Math.floor(Math.random() * files.length);
  element =  element.setAttribute("href",files[index]);
</script>

(未测试)

对于PHP服务器端:

<?php
  $files = array('1.html','2.html');
  $index = mt_rand(0,count($files));
  $link = $files[$index];
?>
<a href="<?php echo($link) ?>">some text</a>

假设您说1.html和2.html存在于同一目录中,则可以使用一个简单的JavaScript解决方案来随机浏览到任一页面,如下所示:

function RandomHREF() {
        randnum = Math.floor(Math.random() * 2) + 1
        window.location= randnum + ".html"
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM