В этой небольшой статье мы разберём, как можно вывести случайную информацию из файла. При этом сделаем небольшой скрипт для игры Dota 2, а именно, вывод случайных предметов для персонажа (его также можно сгенерировать автоматически).
Для начала нужно создать файл, в котором будут храниться наши ссылки на изображения. Назовем файл boots-list.txt и запишем информацию вида:
/item/boots/arcane_boots_lg.png /item/boots/boots_lg.png /item/boots/phase_boots_lg.png /item/boots/power_treads_lg.png /item/boots/tranquil_boots_lg.png /item/boots/travel_boots_lg.png
Из данного списка можно понять, что в папке \»item\» хранятся файлы, отвечающие за предметы, также в этой директории существует подраздел, в котором собраны только средства передвижения. Это нужно для того, чтобы наш скрипт не выводил несколько картинок с ботинками. Ведь в Dota 2 нужен всего один ботинок.
Далее создадим файл random-boots.php (для тестирования) и посмотрим на работоспособность кода:
<?php $var1 = file('http://syscoding.ru/source/random-item/boots-list.txt'); shuffle($var1); for($i = 0;$i<1;$i++) { echo '<img src="http://syscoding.ru/source/random-item/img'.$var1[$i].'"><br>'; } ?>
Пути необходимо поменять на ваши. Результатом компиляции php кода будет вывод одного изображения. При каждом обновлении страницы будет генерироваться новая картинка. Количество предметов можно менять, изменяя условие i<1.
Теперь подготовим остальные файлы. Весь ход операции прописывать необязательно, так как можно сделать по аналогии с выше перечисленным. Исходное дерево файлов выглядит следующим образом:
[img] [heroes] [agility] antimage_hphover.png bloodseeker_hphover.png ... viper_hphover.png weaver_hphover.png [intelligence] ancient_apparition_hphover.png bane_hphover.png ... witch_doctor_hphover.png zuus_hphover.png [strength] abaddon_hphover.png alchemist_hphover.png ... undying_hphover.png wisp_hphover.png [item] [boots] abyssal_blade_lg.png ancient_janggo_lg.png ... vladmir_lg.png yasha_lg.png [icon] agi.png ... str.png
Для оформления будем использовать \»конструктор\» от twitter\’а — Bootstrap. Ее можно скачать с официального сайта или подключить библиотеку, которая расположена у нас на сервере:
<link href="http://syscoding.ru/source/random-item/css/bootstrap.min.css" rel="stylesheet">
С дизайном вашего проекта мы помогать не будем, так как у нас могут быть разные вкусы. Для нас это не основная цель, поэтому будет сделано небольшое оформление, которое даже не подходит игре Dota 2. Для начала создадим файл index.php , в котором не будет скриптов, но не будем ломать общий формат страниц.
После этого создадим несколько страниц, которые будут отвечать за каждый мод:
ap.php
ar.php
cd.php
А потом создадим списки картинок:
boots-list.txt
heroes-list.txt
icon-list.txt
item-list.txt
Коды каждого файла вы можете посмотреть в исходнике, а также можно посмотреть исходник в онлайн режиме, перейдя по странице Dota 2 random item. Знаю, что после прочтения статьи могут возникнуть некоторые вопросы, однако решить их будет полезнее самому.
Привет!) вот вспомнил, зачетная статья. Только вот списки картинок в .txt…. может было бы лучше таблицу?
lokket, я так понимаю ты про mysql, зачем нагружать сервер (хоть и не значительно), если можно через обычный .txt? Изначально я задумывался, но пришел к .txt