PHP rand在页面刷新时包含随机网页部分。我需要一些PHP代码随机包含一个<section>
包含我的博客帖子底部的链接。这段代码有效。
<?php
$files = array("../inc/links/blog-links-bottom.php",
"../inc/links/blog-links-bottom-1.php",
"../inc/links/blog-links-bottom-2",
"../inc/links/blog-links-bottom-3");
include $files[array_rand($files)];
?>
但它并不总是包含<section>
,即它的缺失。此外,它并不总是在页面刷新上插入新的<section>
,这是我想要的。我对php不是很熟悉。
非常感谢任何帮助!
答案 0 :(得分:3)
$files = array("../inc/links/blog-links-bottom.php",
"../inc/links/blog-links-bottom-1.php",
"../inc/links/blog-links-bottom-2",
"../inc/links/blog-links-bottom-3");
include($files[rand(0,(count($files)-1))]);
<强>解释强>
像这样填充数组会给你这种数组:
array(
[0] => "../inc/links/blog-links-bottom.php",
...
)
你需要在0(最低索引)和最高索引(数组层数,减去1)之间获得一个随机密钥,以定位数组中的随机层。
答案 1 :(得分:0)
试试这个:
include $files[rand(0,4)];
或只是
include array_rand($files);
要弄清楚你做错了什么:
$files
是一个数字数组,因此它包含$files[0], $files[1] etc..
等元素。
array_rand
从数组中返回一个随机元素。
因此,在您的情况下array_rand($files)
返回实例"../inc/links/blog-links-bottom-1.php"
。在将两者结合使用时,您正在调用$files["../inc/links/blog-links-bottom-1.php"]
并且不存在。