[英]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.