Перейти к содержимому

Сервис обмена электронных валют


Скрипт вывода рандомных цитат

#1 Banderas

Banderas
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1
0

Отправлено 06 Май 2009 - 08:36

Я много чего получил на форуме masterwebs.ru, пришло время отдавать должное =) Решил написать скрипт вывода рандомной цитаты :P Постараюсь изложить все подробно и доступно для новичков.

Для начала, создаем текстовый документ, где будут находиться наши цитаты. Каждую цитату нужно прописывать с новой строки. Потом сохраняем файл, называем его quote.txt. У меня все это дело выглядит так:
«...без несовершенства неощутимо и счастье!»
«...каждый человек считают страдания, выпавшие на его долю, величайшими»
«Большинство людей счастливы настолько, насколько они решили быть счастливыми»
«В счастье будь умерен, в несчастье разумен. »
«В этом мире многие... несчастны, но только по причине неумения любить, любить другое существо. »
«Важный вопрос, который следует разрешить "на практике": можно ли быть счастливым и одиноким?»

Далее пишем сам скрипт. Называем его, допустим, script.php. Скрипт очень легкий и понятный:
<?php
$qouters = file("quotes.txt"); // создаем переменную, которая состоит из вложений (цитат) файла quotes.txt
$k = mt_rand (0, 99); // переменная $k делает рандомное число от 0 до 99 (для лучшего рандома цитат)
mt_srand (time()+(double)microtime()*$k*95987); // задаем рандомное число
$i = mt_rand (0, (count($quoters)+1)); // даже не знаю как обьяснить, наверно сам не очень понимаю...(((

echo "$qouters[$i]"; // выводим цитату из строки, которая указала переменная $i
?>

У нас практически все готово. Но вставить этот скрипт в простой html нельзя. Так что создаем файлик не page.html, a page.php. У меня он выгладит так:
<html>
<head>
<title>Твой сайт</title>
</head>
<body style="margin: 50px">
<table style="background-color: #fff4ce; width: 100%; height: 100%; text-align: center;">
  <tr>
	 <td style="font-size: 24px;">Рандомная цитата</td>
  </tr>
  <tr>
	 <td><?php include("script.php"); ?></td>
  </tr>
</table>
</body>
</html>

Надеюсь что этот "мини-урок" кому-то помог :P

Автор: Banderas

 

 

  • 0


robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Скрипт для вывода новостей колонками
  2. Скрипт вывода картинок
  3. Скрипт вывода похожих сообщений на СМС без базы данных

#2 shtil

shtil
  • Пользователь
  • 50 сообщений
  • Репутация: 0

Отправлено 06 Май 2009 - 10:53

также из этого урока можно зделать рандомный вывод картинок, просто нужно в блокноте цитаты заменить на
<img src='1.jpg'>
<img src='2.jpg'>

  • 0

#3 Bender

Bender
  • Пользователь
  • 712 сообщений
  • Репутация: 0

Отправлено 06 Май 2009 - 11:18

А можно вместо <?php include("script.php"); ?> писать сам скрипт?
  • 0

#4 shtil

shtil
  • Пользователь
  • 50 сообщений
  • Репутация: 0

Отправлено 06 Май 2009 - 11:23

можно, но я бы советовал держать в отдельном файле :rolleyes:


  • 0

#5 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 06 Май 2009 - 12:24

Вот ротатор баннеров.
Текстовый файл banners.txt
<a href="url"><img src="url_image"></a>
<a href="url2"><img src="url_image2"></a>
<a href="url3"><img src="url_image3"></a>

Код php - rotator.php
<?php
$ban= file("quotes.txt");
$k = mt_rand (0, 99);
mt_srand (time()+(double)microtime()*$k*95987); 
$i = mt_rand (0, (count($ban)+1)); 

echo "$ban[$i]";
?>

Можно и по-другому, но это надо пробовать...

пс. если что не так - исправьте.
  • 0


#6 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 06 Май 2009 - 21:14

Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.

Вообще бы достаточно было написать так:

<?php
$qoutes = file("quotes.txt"); // считываем в массив строки из файла quotes.txt
mt_srand(); // сбиваем рандомный счётчик(слабо)
$i = mt_rand(0, count($quotes)); // вернуть в переменную рандомное число от 0 до количества строк в файле

echo "$qoutes[$i]"; // выводим рандомную цитату, которая находится на строке N = $i +1, где N -номер строки
?>

А так молодчинка :rolleyes: Уже сам что-то да пишешь, это хороший результат


можно, но я бы советовал держать в отдельном файле :)

Держать в отдельном файле это не выход. Это только для начала так пишут. А попробуй-ка таким способом написать сложную систему, зависящую от множества параметров, очень большим количеством настроек. И за всем этим надо уследить, где-то объединить. Поэтому тьакая простая система вставки никак не прокатит. Такие проекты уже пишутся на основе инкрементного программирования. То есть по нарастающей.
  • 0

#7 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 06 Май 2009 - 21:43

2*ZiTosS* спасибо!

Это
$k = mt_rand (0, 99); 
mt_srand (time()+(double)microtime()*$k*95987);
я прописывал для лучшего сбивания счетчика рандома =)
  • 0


#8 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 06 Май 2009 - 21:56

Banderas, я знаю... Я показал упрощенный вариант. Твой нужен при малом числе цитат, чтобы разброс рандомных чисел был велик. При большом количестве цитат, получить тоже рандомное число в моём коде не так-то велико.
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru