Ротатор мыслей » lamara-nsk.ru


lamara-nsk.ru
Это блог о сео, деньгах, заработке в сети, разработке своих проектов, программировании
и "жизни программиста", бизнесе, блогосфере, фрилансе и многом другом.


Контакты, Реклама в блоге




Ротатор мыслей

Автор DimoninG, написано 08.01.2009
Рубрика Общие советы, Скрипты PHP, на WordPress  

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

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

Ротатор состоит из двух частей – кода ротации сообщений (в данном случае – моих мыслей [...звучит жутко]) и файла с фразами для ротации. Пусть на одну мысль будет отведена одна строка, то есть разделителем мыслей служит символ переноса строки (как мы знаем это \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 не нужна



Отзывов (16) на «Ротатор мыслей»


ae471697

    пишет:

    А зачем iconv, если можно текстовый файл создать в кодировке UTF?
    И еще, если я не ошибаюсь, то это функция, зачем возле нее знак $ ?


    пишет:

    Алексей, да, я случайно не то скопировал, нужно убрать $ и ; – две синт. ошибки.

    По поводу кодировки файла – я тоже так думал, но даже пересохранив файл в UTF8 ничего не поменялось. Поэтому использовал преобразование.


    пишет:

    Там надо не просто пересохранять, там нужно перекодироваться. В макромедиа дримвьювер точно есть такая функция :)


    пишет:

    Алексей Качаев, для html-страниц пересохранение работает. Подозреваю, что пересохранение в этом редакторе работает как перекодирование ;)


    пишет:

    А не проще файл minds.txt сразу в utf8 сохранить? :) Нормальные редакторы это умеют, а если не ошибаюсь, то это даже блокнот должен уметь.


    пишет:

    Feo, мы ж только что это обсудили.


    пишет:

    Опять прикольна!!!
    Я не проггер, – не понимаю, что да как, – но плагин такой сделать, – это сложно??? Я б заюзал…


    пишет:

    <?php
    $file = file(‘mind.txt’);
    if ($file) {
    echo iconv(‘UTF-8′, ‘CP1251′, $file[rand(0, count($file))]).»;
    }
    ?>


    пишет:

    Ex, ну да, я раньше на C++ кодил, там функций типа file не было. Хотя по сути оно выполняет те же операции, чтобы Вы знали, а для обучения мне кажется полезным самому все это сделать.


    пишет:

    хех смысл дублировать встроеные функции? чему тебя это научит? научит только неоптимизировать код :neutral:


    пишет:

    Ex, функция file делает то же самое. Хуже того – насколько я помню в нее встроено все то, что я сделал руками. Другими словами, речь не об оптимизации, а максимум – о рефакторинге.


    пишет:

    имхо встроенные функции быстрее велосипеда они же не на пхп написанны


    пишет:

    Ex, я не понял, что Вы сказали, Вы сами-то поняли?


    пишет:

    дыа я четко понял что написал а имено пхп написан на C и встроенные функции такие как file()(которые также написанны на C) и работают быстрее таких же(велосипед =) написанных на пхп.


    пишет:

    Ex, опять ничего непонятно. Запятые – это хорошее дело, попробуйте, понравится.

    В какой-то книге по PHP я читал, что file – это обертка fopen, fread, fclose именно в из PHP-исполнении, что уже написал Вам дважды. Т.е. это не ускоряет работу. К тому же, с file наблюдаются проблемы при размере файла больше 10мб, рекомендуется использовать fopen. Почитайте о проблемах с этой функцией здесь: http://ru.php.net/manual/ru/function.file.php


    пишет:

    Сомневаюсь что мыслей накопица даже на 10 мб :lol:
    ладно возможно я просто любитель коротких решений. :wink:


Оставьте свой комментарий

Что здесь почитать?



1.   Разработки.
1.1 Плагин "Я не робот"
1.2 Плагин "Код Adsense прямо в пост"

2.   Заработай.
2.1 Блогун: 20$ в день
2.2 Уходим от налогов в Sape
2.3 Хватит думать, пора зарабатывать

3.   Акции и конкурсы.
3.1 Ссылка за "Рабочий стол"

Показать весь список.

-->








Блог на движке WordPress и тема для него создана DimoninG'ом в 2007 году.
Все материалы авторские, их копирование запрещено законом об авторском праве.