транслит

<?php
/**
*
*Транслит
*автор: nc_soft
*25.08.07
*
Функция предусматривает обработку текста как с транслитерацией, так и без, в качестве управляющего символа выбран ~
*/

echo transl('yeto tekst tranlitom ~yeto beZ izmenenij');

function transl($string) {
    //проверка отсутствия русских букв

    if (preg_match("/[А-Яа-яЁё]+/su",$string))
    {
        return $string;
    }
    if ($string[0]=='~')
    return substr($string,1);

    $tran = array(
    "A"=>"А",
    "a"=>"а",
    "B"=>"Б",
    "b"=>"б",
    "V"=>"В",
    "v"=>"в",
    "G"=>"Г",
    "g"=>"г",
    "D"=>"Д",
    "d"=>"д",
    "E"=>"Е",
    "e"=>"е",
    "Zh"=>"Ж",
    "ZH"=>"Ж",
    "zh"=>"ж",
    "Z"=>"З",
    "z"=>"з",
    "I"=>"И",
    "i"=>"и",
    "J"=>"Й",
    "j"=>"й",
    "K"=>"К",
    "k"=>"к",
    "L"=>"Л",
    "l"=>"л",
    "M"=>"М",
    "m"=>"м",
    "N"=>"Н",
    "n"=>"н",
    "O"=>"О",
    "o"=>"о",
    "P"=>"П",
    "p"=>"п",
    "R"=>"Р",
    "r"=>"р",
    "S"=>"С",
    "s"=>"с",
    "T"=>"Т",
    "t"=>"т",
    "U"=>"У",
    "u"=>"у",
    "F"=>"Ф",
    "f"=>"ф",
    "H"=>"Х",
    "h"=>"х",
    "X"=>"Х",
    "x"=>"х",
    "C"=>"Ц",
    "c"=>"ц",
    "Ts"=>"Ц",
    "ts"=>"ц",
    "Ch"=>"Ч",
    "ch"=>"ч",
    "Sh"=>"Ш",
    "SH"=>"Ш",
    "sh"=>"ш",
    "Sch"=>"Щ",
    "SCH"=>"Щ",
    "sch"=>"щ",
    "''"=>"ъ",
    "Y"=>"Ы",
    "y"=>"ы",
    "'"=>"ь",
    "Ye"=>"Э",
    "YE"=>"Э",
    "ye"=>"э",
    "Yu"=>"Ю",
    "yu"=>"ю",
    "Ya"=>"Я",
    "ya"=>"я",
    "YU"=>"Ю",
    "YA"=>"Я",
    "Yo"=>"ё",
    "YO"=>"Ё",
    "W"=>"Ш",
    "w"=>"ш",
    'q'=>'ь'
    );

    $tran1= array(
    'нэ '=>'ные ',
    'нэ'=>'ные'
    );

    if (preg_match("/\~+/su",$string))
    {
        $pos=strpos($string,"~");
        $str=substr($string,0,$pos);
        $str=latrus($str,$tran,$tran1);
        $tok=strtok($string,"~");
        $k=3;
        while ($tok=strtok("~"))
        {


            if ($k%2==0)
            {
                $str.=latrus($tok,$tran,$tran1);
                $k++;
            }
            else {
                $str.=$tok;
                $k++;
            }
        }

    }
    else
    {
        return     latrus($string,$tran,$tran1);
    }
    return $str;
}

function latrus($str,$tran,$tran1)
{
    $str=strtr($str,$tran);
    $str=str_replace("_"," ",$str);
    return strtr($str,$tran1);
}

?>
25 августа 2007, 22:14

антимат

<?php
# 25.08.07
##################################################################
#            Скрипт diktator_antimat v1.1_alfa                   #
#           Автор Дмитрий Перов method_05@list.ru                #
#                                                                #
#   Скрипт Распостраняется бесплатно , ссылка                    #
#   На Автора - по желанию...(знаю о чём вы сейчас подумали=))   #
#                                                                #
#   Обработал этим скриптом большой объём текста, вот            #
#  слова которые распознаются как маты:грёбля, грёбаный, глухую ,#
#  ХЛЕБАЛО,ХЛЕБАЛЬНИК,хулиган...                                 #
#                                                                #
#            Сложно просмотреть и предусмотреть Всё...           #
#                Так что о багах - мне на мыло...                #
#                                                                #
#       Всякого рода Модификации скрипта без согласования        #
#                      с Автором запрещены!                      #
#                                                   Удачи!       #
##################################################################


@setlocale(LC_ALL, array ('ru_RU.CP1251', 'rus_RUS.1251'));

$pattern = "/\w{0,5}[хx]([хx\s\!@#\$%\^&*+-\|\/]{0,6})[уy]([уy\s\!@#\$%\^&*+-\|\/]{0,6})[ёiлeеюийя]\w{0,7}|\w{0,6}[пp]([пp\s\!@#\$%\^&*+-\|\/]{0,6})[iие]([iие\s\!@#\$%\^&*+-\|\/]{0,6})[3зс]([3зс\s\!@#\$%\^&*+-\|\/]{0,6})[дd]\w{0,10}|[сcs][уy]([уy\!@#\$%\^&*+-\|\/]{0,6})[4чkк]\w{1,3}|\w{0,4}[bб]([bб\s\!@#\$%\^&*+-\|\/]{0,6})[lл]([lл\s\!@#\$%\^&*+-\|\/]{0,6})[yя]\w{0,10}|\w{0,8}[её][bб][лске@eыиаa][наи@йвл]\w{0,8}|\w{0,4}[еe]([еe\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[uу]([uу\s\!@#\$%\^&*+-\|\/]{0,6})[н4ч]\w{0,4}|\w{0,4}[еeё]([еeё\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[нn]([нn\s\!@#\$%\^&*+-\|\/]{0,6})[уy]\w{0,4}|\w{0,4}[еe]([еe\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[оoаa@]([оoаa@\s\!@#\$%\^&*+-\|\/]{0,6})[тnнt]\w{0,4}|\w{0,10}[ё]([ё\!@#\$%\^&*+-\|\/]{0,6})[б]\w{0,6}|\w{0,4}[pп]([pп\s\!@#\$%\^&*+-\|\/]{0,6})[иeеi]([иeеi\s\!@#\$%\^&*+-\|\/]{0,6})[дd]([дd\s\!@#\$%\^&*+-\|\/]{0,6})[oоаa@еeиi]([oоаa@еeиi\s\!@#\$%\^&*+-\|\/]{0,6})[рr]\w{0,12}/i";

$replacement = "Цензура";
 $text='здесь в качестве примера идет жеский мат, который я не буду применять на страницах snippets :)';
$text = preg_replace($pattern, $replacement, $text);
 echo $text;

/*
$pattern - то что ищем

$replacement - то чем заменяем

$text - то что обрабатываем
*/

?>
25 августа 2007, 22:14

запись файла по ftp через fopen()

<?php
/*
запись файла по ftp через fopen()
*автор: nc_soft
*25.08.07
*/

$user='test.wen.ru'; //юзер
$pass='xxxxxxxxxx'; //пароль
$host='wen.ru'; //хост без префикса
$file='new_file.html'; //имя файла (не должен существовать)

$f=fopen("ftp://$user:$pass@$host/$file",'w'); //открываем в режиме w (с w+ не получится), если предполагается записывать данные, то лучше открывать в режиме wb (бинарный)
fwrite($f,'<html><body>тестовая страница</body></html>'); //запишем тестовую страницу
fclose($f); //закрываем

/*если такой файл уже существует, то запись не произойдет*/
?>
25 августа 2007, 22:13

простой текстовый счетчик на файле

<?php
/*
простой текстовый счетчик на файле
*автор: nc_soft
16.06.07
*/

$ua=$_SERVER['HTTP_USER_AGENT']; //браузер
$ip=$_SERVER['REMOTE_ADDR']; //ip

$uniq=serialize(array($ip,$ua))."\n"; //упакованные данные

$store='./counter/counter.dat'; //файл-хранилище, права 666 и выше

$offset=8*3600; //смещение по времени в секундах (у моего хостера +8 часов от Москвы)
$date_now=date('d',time()+$offset); //сегодняшнее число
$date_access=date('d',filemtime($store)+$offset); //время последней модификации файла

if ($date_now!=$date_access && file_exists($store))
{
    //если даты не совпадают, то пора обнулить счетчик, удаляем файл (для директории надо выставить права 766)
    unlink($store);
}

if (!file_exists($store))
{
    //если файла данных не существует

    $hit=1;
    $host=1;
}
else
{
    //получаем стоки из файла
    $data=file($store);
    $data[]=$uniq; //добавляем к данным текущего юзера

    $hit=count($data); //сколько строк, столько и хитов

    //считаем хосты
    $ip_ua=array();
    $ip_ua[]=$uniq; //запихиваем текущего юзера

    foreach ($data as $v)
    {
        if (!in_array($v,$ip_ua)) //если такой комбинации нет, то
        $ip_ua[]=$v; //увеличиваем уникальные записи
    }

    $host=count($ip_ua); //число уникальных строк

}

//теперь записываем все в файл
$f=fopen($store,'a+'); //создаем/открываем
flock($f,2); //блокируем
fwrite($f,$uniq); //записываем упакованный массив
fclose($f); //закрываем (блокировка снимется сама)

echo $host;
echo '/';
echo $hit;

?>
25 августа 2007, 22:10