Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
YouTube 154 Подписчики
Telegram 241 Подписчики
VK 0 Подписчиков
Маркетер
Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • PHP

Случайные данные

  • 12.05.2004

Автор статьи: Дмитрий Турецкий

>

 

Случайные данные

[генерация случайных данных]материал подготовил: Дмитрий Турецкий
12.05.2004
 

Необходимость вывести на странице сайта какие-то случайные данные возникает довольно часто. Достаточно вспомнить, например, рекламу, анонсы, генерацию паролей… И в сегодняшней заметке мы поговорим о различных случайных вещах, которые помогут сделать ваш сайт интереснее.

Мы не будем касаться алгоритмов генерации случайных чисел — вряд ли они будут сильно интересовать веб-мастера, которому нужно просто вывести на странице случайную картинку. Единственное, о чем необходимо упомянуть — это необходимость «запустить» генератор случайных чисел перед использованием — если этого не сделать, то выдаваемые им значения будут повторяться при каждом прогоне скрипта. В большинстве языков для этого используется функция seed или srand, которой передается какое-то случайное число — как правило, текущее время. Стоит отметить, что в современных версиях PHP (выше, чем 4.2) делать это не обязательно — генератор случайных чисел инициализируется автоматически.

В PHP случайное число можно получить с помощью функции rand(). Эта функция может принимать два необязательных параметра — минимальное и максимальное значение. Для того чтобы узнать самое большое случайное число, которое можно получить с помощью этой функции, можно воспользоваться функцией getrandmax(). Впрочем, вряд ли это потребуется на практике.

 

Второй полезной в деле «ослучайвливания» сайта функцией является array_rand(). Она занимается тем, что возвращает индекс (или массив индексов) одного или нескольких случайных элементов заданного массива. использовать ее удобно, например, для случайного выбора фонового цвета какого-то элемента. Так как автоматическое генерирование цветов — занятие неблагодарное (слишком легко получить неподходящие для сайта варианты), то значительно проще создать массив с заранее подобранными сочетающимися цветами, а потом выбирать из него случайные элементы. Например

  
$colors  =  array(‘#93FAE4’,  ‘#96E3FF’,  ‘#96C1FF’,  ‘#9990F5’);  
$color  =  $colors[array_rand($colors)];  
echo  «<table  bgcolor=$color>»  
…  

Помимо выбора цвета, очень востребованным является случайный выбор строки из файла. Например, вы можете создать текстовый файл с различными цитатами и выводить случайную цитату при просмотре страницы. Или, что более актуально, хранить в файле рекламную информацию (в частности, коды баннеров) и показывать ее. Так как количество строк в файле заранее неизвестно (и, в принципе, может изменяться, особенно если файл создается тоже автоматически), то нам придется файл прочитать, а потом уже выбрать какую-то строку. Самым очевидным и простым решением будет использование функции file(), которая читает файл и возвращает его в виде массива, где каждый элемент представляет собой строку исходного файла. Ну, а получив массив, можно воспользоваться уже известной нам функцией array_rand().

извлечение случайного элемента массива требуется довольно часто

Однако недостатки такого метода очень быстро проявятся, если файл достаточно велик, а посетителей много. Ведь полученный массив занимает память, а ее всегда мало… Поэтому можно поступить следующим образом: читать файл построчно и с вероятностью обратно пропорциональной числу прочитанных строк сохранять текущую строку в качестве случайной.

  
$f  =  fopen(‘jokes.txt’,  ‘r’);  
$i  =  0;  
while(!feof($f))  {  
    $tmp  =  fgets($f,  8196);  
    if  (!rand(0,  $i++))  $string  =  $tmp;  
}  
fclose($f);  
$string  =  trim($string);  

Давайте разберемся, как этот пример работает. Первым делом мы открываем для чтения файл jokes.txt и инициализируем нулем внутреннюю переменную $i. Затем запускаем цикл, который должен прерваться, как только будет дости

Алексей Волков

Предыдущий материал
  • Управление и организация бизнеса

Игроки и правители валютного рынка

  • 11.05.2004
  • Алексей Волков
Read More
Следующий материал
  • Дизайн

Фиксированные размеры в дизайне

  • 18.05.2004
  • Алексей Волков
Read More
Вас также может заинтересовать
Read More
  • Codeigniter

Создание собственного обработчика 404 ошибок в CodeIgniter

  • jokar
  • 07.10.2012
Read More
  • PHP
  • Готовые скрипты

Загрузка нескольких файлов одним браузером

  • jokar
  • 14.06.2010
Read More
  • PHP

Переход на шаблонный дизайн

  • Алексей Волков
  • 10.02.2006
Read More
  • PHP

Экстремальный стиль для PHP

  • Алексей Волков
  • 29.12.2005
Read More
  • PHP

Секреты PHP-функций для работы с массивами. Обработка данных и сортиров

  • Алексей Волков
  • 15.11.2005
Read More
  • PHP

Секреты PHP-функций для работы с массивами. Создание массивов

  • Алексей Волков
  • 31.08.2005
Read More
  • PHP

PHP: секреты файла php.ini. Часть 4

  • Алексей Волков
  • 04.08.2005
Read More
  • PHP

PHP: секреты файла php.ini. Часть 3

  • Алексей Волков
  • 29.07.2005

Добавить комментарий

Для отправки комментария вам необходимо авторизоваться.

Свежие посты
  • Дайджест постов Сергея Людкевича
    • 12.09.24
  • Как юристы тормозят бизнес
    • 30.08.24
  • Продвижение оптовых кампаний в Яндекс Директ
    • 06.03.24
  • Cарафанное радио
    • 13.01.24
  • 5-55: История компании
    • 01.03.23
Маркетер
  • О проекте
  • Информационное спонсорство
  • Рекламным агентствам
  • Ссылки
(с) ООО "Маркетер". Официальный сайт. Маркетер: Статьи про рекламу, маркетинг, public relations, интернет

Введите ключевые слова для поиска и нажмите Enter