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



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

#1

Поделиться сообщением #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

I'm web-developer 

Magento one love!



robot

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

#2

Поделиться сообщением #2



shtil

shtil
  • Неактивные
  • 50 сообщений
  • Репутация: 0

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

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

  • 0

#3

Поделиться сообщением #3



Bender

Bender
  • Неактивные
  • 712 сообщений
  • Репутация: 0

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

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

#4

Поделиться сообщением #4



shtil

shtil
  • Неактивные
  • 50 сообщений
  • Репутация: 0

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

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


  • 0

#5

Поделиться сообщением #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

I'm web-developer 

Magento one love!



#6

Поделиться сообщением #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

Поделиться сообщением #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

I'm web-developer 

Magento one love!



#8

Поделиться сообщением #8



ZiTosS

ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

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

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

robot

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


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