我如何使用PHP包含随机页面?

时间:2010-12-28 20:35:43

标签: php html

我有20个不同的页面,每当有人访问我的主页时我想要一个随机页面显示

我的代码:

<?php

    switch($_GET['page'])
{     
    case "1":
        $page = include('pages/1.php');
    break;

更多案例等现在是随机部分(如果没有调用特定页面)

default:
    $page = include('pages/ rand(1, 20) .php');
    break;
}?>

我尝试使用rand(1,20),但它不会那样工作。 谢谢你的帮助!

5 个答案:

答案 0 :(得分:4)

您必须使用string concatenation接受答案;)

include('pages/' .  rand(1, 20) . '.php');

顺便说一下。我认为include没有任何返回值,所以不需要使用赋值。


更好的是:

$pages = range(1,20);
$page = rand(1, 20);
if(array_key_exists('page', $_GET) && in_array($_GET['page'], $pages)) {
// or $_GET['page'] >= 1 && $_GET['page'] <= 20 instead of in_array(...)
    $page = $_GET['page'];
}
include('pages/' .  $page . '.php');

答案 1 :(得分:0)

您可能只需要从字符串内部移动它,以便对其进行评估:

$page = include('pages/' . rand(1, 20) . '.php');

答案 2 :(得分:0)

你的字符串全部关闭,函数不会评估它是否在字符串中。尝试修改代码,使其类似于:

$page = include('pages/'.rand(1, 20).'.php');

答案 3 :(得分:0)

尝试$page = include('pages/' . rand(1,20) . '.php');

答案 4 :(得分:0)

避免长时间切换的更好方法:

if (isset($_GET['page']))
   $page = 'pages/'.(int)$_GET['page'].'.php'; // Always sanitise user input!!!
else
   $page = 'pages/'.rand(1,20).'.php';

include $page;