Выводим случайную строку из файла



Главная Сделай сам Учебник WEB

Помогая другим, помогаешь себе.


Создадим реальн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";

В первом фрейме открываем другой файл.

Всё работает!


Предыдущия


Главная