2014-01-11 3 views
0

У меня есть сайт с большим количеством статических страниц контента, которые разделены по категориям, каждая категория имеет папку и index.html внутриПоказать произвольную ссылку с моего сайта?

enter image description here

То, что я хочу сделать, это положить некоторый код внутри основной файл index.php таким образом, что всякий раз, когда пользователь посещает этот файл index.php, он будет перенаправлен на один из моих папок,

Например:

index.php код:

<?php 
random_redirect_the_user(); 
?> 

Где random_redirect_the_user() перенаправляет пользователя на http://www.example.com/wiki/(FOLDER)

А (FOLDER) случайным образом выбран и может быть любая папка, из тех, которые появляются выше.

Вопрос:

Что я должен писать внутри random_redirect_the_user() для выполнения такого рода перенаправления?

+1

И ваш вопрос? Что вы пробовали? – idmean

+0

будете ли вы читать все пути динамически или вы будете кодировать пути вручную в своем коде? Если вы сделаете это автоматически, вы должны прочитать папки, например. используя scandir, а затем проверьте, является ли путь папкой или файлом, а затем сохраните все папки в массиве, которые вы позже производите. – MrSimpleMind

+0

Что ваше исследование сообщило вам, когда вы пытались найти что-то, что перечисляло содержимое каталога? – Sumurai8

ответ

0

попробовать что-то вроде этого: во-первых, получить массив имен всех папок:

$dir = '/tmp'; //here set you main folder 
$foldersArray = scandir($dir) 

Тогда получить случайное имя:

$randomFolderKey = array_rand($foldersArray); 

После этого, сделайте следующее:

header('Location: www.youwebsiteUrl/'.$foldersArray[$randomFolderKey]) 
+0

is_dir должен быть использован для проверки после scandir, scandir также выбирает файлы. – MrSimpleMind

+0

Да, вы правы, но OP написал, что там папки, но да, будет лучше chek, спасибо – sergio

+0

array_rand возвращает индексы (ключи массива) не значения – Gadoma

0
var $directories = Read your folder list from the server (Search for: PHP Read directories) 

Get a random directory (Search for: PHP random) 
// You can get a random between 0 and count($directories) 

Then redirect your user: (Search for: PHP redirect | PHP header) 

И все готово!

0

Это должно делать то, что вы ищете.

Надеюсь, что это помогает

function random_redirect_the_user(){ 
    $dir_list = array(); 
    $path = '/path/to/directory/'; 
    if ($handle = opendir($path)) { 
     while (false !== ($entry = readdir($handle))) { 
      if($entry == '.' || $entry == '..'){ 
       continue; 
      } 
      if(is_dir ($path.''.$entry)){ 
       array_push($dir_list, $path.''.$entry); 
      } 
     } 
    } 
    $count = count($dir_list); 
    $random = rand(0,$count); 
    return $dir_list[$random]; 
} 

$dir = random_redirect_the_user(); 
echo $dir; 
Смежные вопросы