PHP rand在页面刷新时包含随机网页部分

时间:2014-05-22 12:17:49

标签: php arrays

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不是很熟悉。

非常感谢任何帮助!

2 个答案:

答案 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"]并且不存在。