Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
Facebook 0 Likes
Twitter 0 Followers
Instagram 0 Followers
Pinterest 0 Followers
YouTube 0 Subscribers
Подписаться
Маркетер
Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • PHP

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

  • 12.05.2004
Total
0
Shares
0
0
0
0
0
0

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

>

 

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

[генерация случайных данных]материал подготовил: Дмитрий Турецкий
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. Затем запускаем цикл, который должен прерваться, как только будет дости

Total
0
Shares
Телеграфировать 0
Поделиться 0
Репост 0
Твитнуть 0
Алексей Волков

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

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

  • 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

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

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

Свежие посты
  • Рассылка как продукт
    • 24.07.20
  • Google назвал лучшие приложения App Store за 2018 год
    • 14.12.18
  • Онлайн-конференция интернет-магазин от “А до Я” CyberE-com 2018
    • 25.05.18
  • Бесплатная онлайн-конференция по управлению репутацией
    • 04.12.17
  • Открыта регистрация на CyberMarketing-2017
    • 19.10.17
Маркетер
  • О проекте
  • Информационное спонсорство
  • Рекламным агентствам
  • Ссылки
(с) ООО "Маркетер". Официальный сайт. Маркетер: Статьи про рекламу, маркетинг, public relations, интернет

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