программирование

Нет, я не о чтении мыслей прямо из мозга. Хотя было бы интересно.

Сегодня (перед написанием этого поста) я сделал в блоге ротатор своих (умных, конечно!) мыслей. У меня уже давно накопилось много собственных высказываний (ну и самомнение, да?), которыми я был бы не прочь поделиться с окружающими. Сейчас сел и написал ротатор, который и хочу предложить Вам. Это не плагин, но на халяву.

Ротатор состоит из двух частей – кода ротации сообщений (в данном случае – моих мыслей […звучит жутко]) и файла с фразами для ротации. Пусть на одну мысль будет отведена одна строка, то есть разделителем мыслей служит символ переноса строки (как мы знаем это \n).

Прямо в код шаблона WordPress (или другого движка)*, где мы хотим выводить мысли мы пишем следующее:

<?php
$file = fopen ("mind.txt", "r");
if ($file){
    $minds = "";
    while (!feof ($file)) {$minds .= fread ($file, 256);}
    $mind = explode ("\n", $minds);
    $say = $mind[rand (0, count ($mind) - 1)];
    echo iconv ('UTF-8', 'CP1251', $say)."<br>";
    fclose ($file);
}
?>

В корень сайта кладем файл с мыслями (mind.txt).

Просто, но работает. Сначала мы открываем файл (см. код) для чтения, потом в $minds читаем все содержимое файла (в цикле). Дальше делим полученную длинную строку на массив с помощью explode (разделитель – перенос строки). Потом выбираем одну фразу случайным образом и записываем ее в $say. Дальше преобразовываем кодировку к UTF8** и выводим фразу. Закрываем файл.

Чтобы было понятнее – я прописал этот код в шаблоне в файле header.php там, где хотел видеть случайные фразы. Если хотите оформить с помощью CSS, сделайте что-то вроде:

echo "<span class=someclass>".iconv
      ('UTF-8', 'CP1251', $say)."</span><br>";

…и оформляйте уже класс someclass.

* не все движки поддерживают код прямо в шаблонах, в этих случаях придется приспосабливать данный код самостоятельно

** это потому, что у меня блог в UTF8, у Вас он может быть и в другой кодеровке. Если он у Вас в CP1251, функция iconv не нужна

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *