Блог пользователя - muff

PHP - вывод случайного содержимого

PHP логотип
 
Иногда требуется выводить данные в случайном порядке. Кроме этого, вещь полезна еще и тем, что контент страниц никогда не повторяется и при индексации роботами мы всегда можем сказать, что страницы у нас разные, чем несколько вводим в заблуждение поисковики. Но это заблуждение в нашу пользу.

Реализовать это можно несколькими способами. Один из самых простых:

  1. Создать на сервере текстовый файл data.txt
  2. Наполнить этот файл содержимым (каждый новый вариант - с новой строки)
  3. Добавить на страницу следующий php-код:
<?php
$phrases = "data.txt"; //файл содержимого
$z = file ($phrases);
$cz = count ($z) -1;
$r = rand (0, $cz);
print $z[$r];
?>

Для примера, на этой странице будет генерироваться три афоризма:


Афоризм 1: На войне побеждает тот, кто в ней не участвует.

Афоризм 2: От недостатка силы пускаются на хитрости, от недостатка ума - на все что угодно.

Афоризм 3: Оказалось, что динамичное продвижение вперед - лишь результат регулярных пинков сзади.


Ничего сложного. Единственный ньюанс - необходимо, чтобы кодировка текстового файла совпадала с кодировкой веб-страницы.

 

BGP - как происходит выбор наилучшего маршрута

BGP всегда выбирает один из маршрутов - как наилучший. Когда маршрут выбран, BGP помещает его в свою таблицу маршрутизации, и передает его своим neighbor'ам. Для выбора наилучшего маршрута BGP использует следующие критерии:

1. Если путь, указанный в поле next-hop, недоступен, этот update убивается.

2. Лучшим считается путь с наибольшим значением weight;

3. Если weight путей одинаковы, то выбирается путь с наибольшим lpref;

4. Если weight и lpref одинаковы, то выбирается путь, который появился в таблице маршрутов BGP на данном роутере. (подразумевается, что это будет самый наикратчайший путь);

5. Если нет путей, которые "родились" на данном роутере, то выбирается путь с AS_path минимальной длины;

Добавлены переводы man-страниц

 

FreeBSDДобавлено значительное количество переводов на русский man-страниц. Рекомендую "пробежаться" по названиям, возможно что-то заинтересует. Сам обнаружил несколько полезных утилит, о которых не подозревал. Если есть чем поделиться - регистрируйтесь и добавляйте материал самостоятельно.

Просмотреть доступные переводы можно в разделе Русские man-ы

BGP - настраиваем Border Gateway Protocol c помощью Quagga

Вообще-то по настройке Quagga уже есть статья, но решил, что настройке BGP необходимо посвятить отдельную статью. Итак, на днях получила дружественная сеть свою автономную систему и блок адресов. Соответственно необходимо все это дело настроить под собственные нужды, и с этой просьбой и обратилась ко мне.

Для глобальной маршрутизации будем использовать протокол BGP, информацию можно получить здесь. Ознакомившись с литературой, приступим к настройке.

Поставленная задача: получить от провайдера по одному BGP-соединению список сетей UA-IX, по второму - Full-view. Ну а дальше уже можно будет по представленной схеме настраивать соединения с несколькими аплинками.

Ddrescue - поиск сбойных блоков на жестком диске

Возникла необходимость в поиске сбойных блоков на жеском диске. Порыскав по интернету, нашел описание утилиты ddrescue. Решил попробовать. Итак, устанавливаем утилиту из портов:

# cd /usr/ports/sysutils/ddrescue && make install clean && rehash

Проверка не составляет труда. Проверим, для примера, раздел /dev/ad5s1d:

# ddrescue --force /dev/ad5s1d /dev/null

Собственный счетчик посещений

В сети очень много сервисов предлагают установить свои счетчики посещений. Мы же в этот раз попробуем создать собственный счетчик посещений, который можно будет поместить на веб-страницу, своими силами.

Счетчик создаем с помощью PHP. Код счетчика очень простой:

<?php
$filename = "counter.dat";      // задаем переменную, указывая имя файла
if(file_exists($filename)){     // если файл присутструет, то
$fp = fopen($filename,"r");     // открываем соединение с этим файлом, причем только на чтение
if ($fp) {                      // проверяем, успешно ли открылось соединение.
$counter = fgets($fp,10);       // если успешно, считываем из открытого файла первые
                                // 10 символов в переменную счетчика
fclose($fp);                    // закрываем соединение
} else {                        // иначе
$counter = 0;                   // присваиваем переменной счетчика ноль
}
}
$counter++;                     // увеличиваем переменную счетчика на единицу
echo $counter;                  // выводим на экран переменную счетчика
$fp = @fopen($filename,"w");    // открываем соединение на запись с очисткой всего содержимого файла
if ($fp) {                      // если успешно, то...
$counter = fputs($fp,$counter); // записываем новое значение переменной счетчика в файл
fclose($fp);                    // закрываем файл
}
?>

Вот и все! Теперь можно устанавливать свои собственные счетчики на любых страницах сайта. Для этого указанный код вставляется в любое место нужной страницы. В этом месте будет выведено количество посещений.

ПРИМЕР: Вы пользователь, который посетил эту страницу.

Cron - отключение отправки уведомлений

Добавил в cron задание, которое выполняется каждую минуту и перечитал конфигурацию cron-а. Проверил по логам - задание выполняется корректно, cron честно выполняет свою роль. А еще через несколько минут увидел, что все тот же cron радостно отчитывается о выполненом задании, отправляя на root-овый e-mail сообщение.

"Выправить" это очень просто. Чтобы cron не отправлял отчеты, необходимо добавить в его конфигурационный файл /etc/crontab такую строчку: MAILTO="". Тоесть теперь начало файла будет выглядеть примерно вот так:

MPD - настройка собственного VPN-сервера

В связи с просьбой одного из сотрудников в реализации доступа к серверам офисной сети из дома (согласно требованиям безопасности, доступ к ним из сети Internet ограничен), возникла необходимость в настройке VPN-сервера. Реализовывать будем на базе MPD - основанная на netgraph реализация ppp-протокола мультисвязи для FreeBSD. Еще одним плюсом в сторону MPD есть то, что он совместим с Microsoft,  тоесть подключиться к нашему серверу пользователи ОС Windows смогут пользуясь стандартными средствами ОС.

В более ранних версиях, для работы MPD необходима была поддержка ядром NETGRAPH, однако, начиная с FreeBSD6.0, это необязательно. Поскольку офисный маршрутизатор работает под FreeBSD 8.0, пересобирать ядро с поддержкой NETGRAPH не будем:

RoundCube Webmail - еще один почтовый веб-интерфейс

Roundcube

В продолжение темы о веб-интерфейсах почтовой системы рассмотрим установку и настройку RoundCube Webmail. RoundCube Webmail — это клиент для работы с электронной почтой с веб-интерфейсом, написанный на PHP с использованием CSS и XHTML и технологии AJAX. Описание можно посмотреть здесь, а сейчас повторюсь и отмечу основные возможности и особенности программы.

SysAid Server - Web-Based Help Desk

SysAid

Решил попробовать такой програмный продукт как SysAid, тем более что есть бесплатная версия. Описание можно посмотреть на сайте проекта, также можно просмотреть проект в режиме демонстрации.

Для начала скачиваем дистрибутив с сайта разработчика (кстати порадовала скорость загрузки - до 15 мегабит на секунду):

RSS-материал

Вставай, Україно!

Литература