Создаем информер с случайными данными

Всем начинающим программистам пламенный привет. Сегодня очередной практический урок по созданию информеров, информационных блоков, главная цель которых разнообразить и дополнить контент на отдельно взятой вашей страничке. Безусловно, вы встречали такие информеры в виде: случайного анекдота (при обновлении странички по F5 всегда показывался новый анекдот), случайной картинки, случайного афоризма и т.д. Использование таких информеров, безусловно, привносит разнообразие в скучный статичный текст, а для поисковых систем создает эффект "живого" наполнения.

Итак, каким образом сделать свою веб-страничку интереснее для посетителей? Делаем свой информер на языке PHP (никаких особых навыков вам не потребуется), также я покажу вам, как все это реализовать на движке WordPress.

Информер на PHP: случайный анекдот

Если мы употребляем слово "случайный", то это наверняка подразумевает программу, которая случайным образом выберет значение из заранее подготовленного массива данных. Таким образом, для того, чтобы подготовить информер, который каждый раз нам будет показывать случайный анекдот, мы должны заранее подготовить сборник таких анекдотов, а наша программа будет случайным образом брать из этого сборника ОДИН анекдот и показывать его посетителю.

Задача ясна? Готовим текстовый файл с анекдотами. Его основные технические требования:

- Каждый НОВЫЙ анекдот начинается в текстовом файле с НОВОЙ строки;

- Каждый перевод строки в анекдоте заменен на html символ перевода строки - <br>;

Чтобы ничего не напутать, в блокноте в котором готовим нашу базу анекдотов снимаем галочку: Формат - Перенос по словам и проверяем корректность. Выглядеть на практике все это должно следующим образом:

note

Когда база анекдотов готова (чем их больше - тем лучше), сохраняем файл под названием, например, anegdot.txt и заливаем в корень своего сайта.

На следующем этапе пишем скрипт выбора случайного анекдота. В нашем случае он будет написан на php. В версиях 4 и 5 этого языка есть интересующая нас функция - rand, она как раз генерирует случайное число, что собственно нам и необходимо в данном случае. Используя эту функцию и нехитрый код, в том месте, где мы хотим получить случайный анекдот, прописываем нижеследующий код:

<?php
$textfile = "http://ваш.сайт/anegdot.txt";
if ($quotes = @file("$textfile")) {
$quote = rand(0, sizeof($quotes)-1);
echo $quotes[$quote];
}else{
echo ("Нет контента");
}
?>

Если вы все сделали правильно, то из переменной $textfile (база анекдотов) функция rand выберет случайную строку и отобразит ее содержимое в том месте файла где вы разместили сам код. Как видите все достаточно просто и гениально. На практике это выглядит примерно следующим образом (также вы можете видеть живой пример в конце этого поста):

anekdotfoto

Случайный анекдот в конце каждого поста Wordpress

Для того чтобы показать случайный анекдот в конце каждого поста в WordPress, достаточно открыть файл single.php вашей темы и после вывода контента, как правило, после кода <?php the_content(); ?> разместить вышеуказанный код. Оформление анекдота (текстовой части) в этой статье я упускаю, об этом вы уж как-нибудь сами позаботьтесь.

Информер на PHP: случайная картинка

Информер, в котором случайным образом показывается случайная картинка делается аналогичным образом, с использованием все того же генератора случайных чисел - функции rand, но сам скрипт придется несколько изменить, поскольку получать случайное число мы будет не из текстового массива, а из файлов, содержащихся в отдельно взятой папке на хостинге.

<?php
$folder=opendir("папка");
while ($file = readdir($folder))
$names[count($names)] = $file;
closedir($folder);
sort($names);
$tempvar=0;
for ($i=0;$names[$i];$i++){
$ext=strtolower(substr($names[$i],-4));
if ($ext==".jpg"||$ext=="jpeg"||$ext==".png"){$names1[$tempvar]=$names[$i];$tempvar++;} //указываем, какие расширения файлов будем обрабатывать
}
srand ((double) microtime() * 10000000);
$rand_keys = array_rand ($names1, 2);
$slika=$names1[$rand_keys[0]];
$dimensions = GetImageSize($slika);
if ($pic==random){header ("Location: $slika");}
else {echo "<img width=\"300\" src=\"http://мой сайт.ру/папка/$slika\" $dimensions[3]>";}
?>

Итак, приступим. Открываем на нашем хостинге папку "папка" (назовите ее на свое усмотрение, например "prikol") и загрузите в нее фотографии. В том месте, где должна выводиться в случайном порядке фотография, мы должны прописать вышеуказанный код. Обратите внимание на выделенный синим текст.  Это те значения, которые при необходимости нужно подкорректировать. В первой строчке вы можете подключить или отключить расширения графических файлов, которые будут обрабатываться скриптом (так, скрипт будет обрабатывать файлы ТОЛЬКО с указанными расширениями), а число "300" в последней строчке кода означает автоширину, устанавливающую для фотографий (очень полезно, если фотографии различных размеров и их нужно втиснуть в фиксированную область на сайте, например, в сидебар).

fotorandomПример живой реализации информера "случайная картинка на php" показан на моем сайте - в блоке "Правда жизни" случайным образом показывается картинка со смыслом из жизни программиста :) .

Надеюсь, объяснил все доходчиво! До новых встреч. Буду признателен за комментарии веб-мастеров, которым мои советы и рекомендации оказались полезными.

 

 

Оцените материал:
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (5 голоса, рейтинг: 5,00 из 5)
Загрузка...

Вячеслав - типичный интернетчикВячеслав Скоблей (ака files) - типичный интернетчик. Скитаюсь интернетом, пишу на PHP, увлекаюсь созданием веб-сайтов на Wordpress, решаю многочисленные проблемы, которые до появления интернета не существовали...

Специализируюсь на безопасности сайтов: защищаю сайты от атак и взломов, занимаюсь лечением вирусов на сайтах и профилактикой...

Наверняка у Вас есть вопросы, просьбы или пожелания. Не стесняйтесь спросить, я отвечаю всегда быстро...

7 комментарий

  1. Likhach says:

    Вячеслав, а как Вы сделали кнопочку ещё (обновить)? Буду благодарен за подсказку...

    1. Вячеслав says:

      На Ajax. Работает также внутри публикаций если нажимать на фотографию в сайдбаре (блок SEO будни). Откройте исходный код страницы и, думаю, разберетесь!

  2. Долго искала пошаговую инструкцию по созданию текстового информера в PHP. Попробую внедрить. Только вопрос: а можно тексты вписать не в текстовый файл, а на на странице веб-сайта? если да, то что нужно изменить в коде? Спасибо.

    1. Вячеслав says:

      Светлана, в рассматриваемом информере используется текстовый файл как база данных строчек, из которой функцией rand извлекается случайная строка. Реализация Вами задуманного невозможна!

      1. Вячеслав, я нашла выход: сделала вместо текстового документа веб и заменила в коде text на html. Очень рада, что набрела на ваш блог :) спасибо огромное.
        А еще вопрос не по теме: откройте, пжт, секрет, как внедрено в последних комментариях (виджет) прокрутка сообщений.

        1. Вячеслав says:

          Очень рад, Светлана, что разобрались. Правда, вначале я не до конца понял Вашего вопроса.
          Ну а код для последних комментариев отправил вам на почту. Постарайтесь его осилить! :)

          1. Спасибо, Вячеслав. Буду разбираться :)

Добавить комментарий для Likhach Отменить ответ

Ваш адрес email не будет опубликован.