Помогая другим, помогаешь себе.
Создадим реальнyю виртyальность !
Выводим случайную строку из файла
Можно, конечно, для этого использовать БД. Просто создать там новую таблицу, но я решил пойти по пути наименьшего сопротивления и использовать обычный txt файл. Вот как это выглядит у меня:
Теперь что нам понадобится:
Обычный текстовый файл (я сразу все кодирую в UTF-8 без BOM, чтобы не было лишних проблем с кодировкой). Он будет содержать нужные нам строки, которые мы хотим выводить в случайном порядке.
Для непосредственно вывода я использовал простой код:
<div id="mytagline">
<?php
$txt = file('путь к txt файлу');
$str = $txt[ array_rand($txt) ];
unset($txt);
echo $str;
?>
</div>
Вставил его в файл header.php своей темы. Все, этого достаточно!
Если подумать где применить такую возможность, то я могу придумать примерно следующее:
- случайные шутки и анекдоты;
- случайные цитаты умных людей;
- случайные строки из песен для сайтах с текстами;
- рецепты для сайтов с рецептами;
- рандомные программы для варезников.
Вывод произвольной строки из файла с помощью JavaScript
Наверняка все где ни будь на страничке видели вывод произвольной фразы.
Как это делается?
Вставка произвольной строки в большинстве случаев вставляется в документ на стороне сервера, это достигается использованием JSP, Perl, PHP, ASP, в редких случаях это Java applet работающий на стороне клиента .
Но как это сделать тому у кого нет доступа к данным технологиям?
Предлагаю вашему вниманию пример вставки произвольной строи в документ с помощью JavaScript.
Данный скрипт выводит произвольную строку (фразу Фоменко).
! В JavaScript нет функции загрузки файла! Как быть?
Создаём файл index1.html и два фрейма:
<html>
<frameset rows="0%,100%">
<frame src="0.html" name="frame1">
<frame src="index3.html" name="frame2">
</frameset>
</html>
Заметьте что первый (именно первый, так как если фреймы поменять местами работать не будет!) размером 0, чтобы его не было видно.
В первый фрейм загружаем файл 0.html следующего содержания:
<html>
<body>
<a href="a" name="Рожденный брать, давать не может">
<a href="a" name="Я избавился от 80 кг лишнего веса. Я наконецто развелся">
<a href="a" name="Кто в армии служил, тот в цирке не смеется">
<a href="a" name="Семь раз отпей , один раз отлей">
<a href="a" name="Вы не любите кошек? да вы просто готовить не умеете">
<a href="a" name="Вытри слюни с пальто, замерзнут - порежешься">
<a href="a" name="Сбылась мечта патриота">
<a href="a" name="Кузькина мать зовет">
<a href="a" name="Непоколебимая женщина - это женщина, которая всегда отдается без колебаний">
<a href="a" name="Счастье - есть, и пить - тоже счастье">
<a href="a" name="В ногах правды нет, она между ними">
<a href="a" name="Я не злопамятный, я просто злой, и у меня память хорошая">
<a href="a" name="Девушки не ходите замуж за иностранца, поддержите отечественного производителя">
<a href="a" name="Деньги не пахнут потому что их отмывают">
<a href="a" name="Избушка, как тебе не стыдно, к лесу - задом">
<a href="a" name="Мышки плакали и кололись но все равно продолжали жрать кактус">
<a href="a" name="Чем больше выпьет Комсомолец, тем меньше выпьет хулиган">
<a href="a" name="Волшебная мама Аладина исполняет любые 3 желания">
<a href="a" name="Рожденный ползать упасть не может">
<a href="a" name="Житель Непала - это тот, кто зачат не палкой и не пальцем">
</body>
</html>
Где вместо имён ссылок пишем наши фразы.
Во второй фрейм загружаем файл index2.html:
<html>
<head>
</head>
<body>
<script language="JavaScript">
num1=Math.ceil(Math.random()*19);
a=parent.frame1.document.anchors[num1];
document.write(a.name);
</script>
</body>
</html>
Что мы делаем?
num1=Math.ceil(Math.random()*19);
Получаем случайное число.
a=parent.frame1.document.anchors[num1];
Получаем ссылку под номером num1
document.write(a.name);
и выводим её имя в документ (а имя и есть фраза?).
Но как быть если у меня много фраз и файл получается огромным и долго грузится через Инет, что раздражает посетителей?– спросите вы.
Берём этот файл (у меня 520 фраз Фоменко) разбиваем его на 26 файлов с именами от 0. html до 25. html по 20 фраз (при этом размер файла не превышает 1.5 КБ), и заменяем содержимое нашего файл index2.html на следующее:
<html>
<head>
</head>
<body>
<script language="JavaScript">
num1=Math.ceil(Math.random()*25);
parent.frame1.location.href=num1+".html";
num1=Math.ceil(Math.random()*19);
a=parent.frame1.document.anchors[num1];
document.write(a.name);
</script>
</body>
</html>
Добавленные строчки:
num1=Math.ceil(Math.random()*25);
Получаем случайное число.
parent.frame1.location.href=num1+".html";
В первом фрейме открываем другой файл.
Всё работает!