<?php
header
('Content-Type: text/html; charset=utf-8');

// Функция преобразования текста ссылок в ссылки
function link_it($text)
{
    
#$text= preg_replace("/}/s", "%7d", $text);
    
$textpreg_replace("/</s""&lt;"$text);
    
$textpreg_replace("/(^|[\n ])([\w]*?)((ht|f)tp(s)?:\/\/[\w]+[^ \,\"\n\r\t<]*)/is""$1$2<a href=\"$3\" >$3</a>"$text);
    
$textpreg_replace("/(^|[\n ])([\w]*?)((www|ftp)\.[^ \,\"\t\n\r<]*)/is""$1$2<a href=\"http://$3\" >$3</a>"$text);
    
$textpreg_replace("/(^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+)+)/i""$1<a href=\"mailto:$2@$3\">$2@$3</a>"$text);
    return 
$text;
}

// Функция перекодирования url в русский язык
function my_url_decode($s)
{
    
$sstrtr ($s, array (
        
"%D0%B0"=>"а""%D0%90"=>"А""%D0%B1"=>"б""%D0%91"=>"Б""%D0%B2"=>"в""%D0%92"=>"В""%D0%B3"=>"г""%D0%93"=>"Г",
        
"%D0%B4"=>"д""%D0%94"=>"Д""%D0%B5"=>"е""%D0%95"=>"Е""%D1%91"=>"ё""%D0%81"=>"Ё""%D0%B6"=>"ж""%D0%96"=>"Ж",
        
"%D0%B7"=>"з""%D0%97"=>"З""%D0%B8"=>"и""%D0%98"=>"И""%D0%B9"=>"й""%D0%99"=>"Й""%D0%BA"=>"к""%D0%9A"=>"К",
        
"%D0%BB"=>"л""%D0%9B"=>"Л""%D0%BC"=>"м""%D0%9C"=>"М""%D0%BD"=>"н""%D0%9D"=>"Н""%D0%BE"=>"о""%D0%9E"=>"О",
        
"%D0%BF"=>"п""%D0%9F"=>"П""%D1%80"=>"р""%D0%A0"=>"Р""%D1%81"=>"с""%D0%A1"=>"С""%D1%82"=>"т""%D0%A2"=>"Т",
        
"%D1%83"=>"у""%D0%A3"=>"У""%D1%84"=>"ф""%D0%A4"=>"Ф""%D1%85"=>"х""%D0%A5"=>"Х""%D1%86"=>"ц""%D0%A6"=>"Ц",
        
"%D1%87"=>"ч""%D0%A7"=>"Ч""%D1%88"=>"ш""%D0%A8"=>"Ш""%D1%89"=>"щ""%D0%A9"=>"Щ""%D1%8A"=>"ъ""%D0%AA"=>"Ъ",
        
"%D1%8B"=>"ы""%D0%AB"=>"Ы""%D1%8C"=>"ь""%D0%AC"=>"Ь""%D1%8D"=>"э""%D0%AD"=>"Э""%D1%8E"=>"ю""%D0%AE"=>"Ю",
        
"%D1%8F"=>"я""%D0%AF"=>"Я""%20"=>" ")
    );
    return 
$s;
}

function 
out_calc($db$calc)
{
    
$result false;

    while (!
feof($db))
    {
        
$Descr "";
        
$str fgets($db);
        if (
$str == "") {
            continue;
        }
        
$arr preg_split("/[\=]/"$str);
        if (
preg_match("/([\s]*)([=]{1})\s*(.*?)\s*$/"$str$key))
            
$Descr $key[3];

        
$preCalc $arr[0];
        unset(
$arr);
        
$arr explode(" "$preCalc);
        
$Author = isset($arr[1]) ? $arr[1] : "unknown";

        
//Начальный индекс $calc
        
$i 3;
        
$upCalc $arr[$i];
        
$index sizeof($arr)-1;

        for (
$i++; $i $index$i++)
            
$upCalc $upCalc." ".$arr[$i];

        
$calcs[$upCalc]   = $Descr;
        
$authors[$upCalc] = $Author;

        unset(
$arr);
        unset(
$key);
    } 
//End while !feof

    
foreach ($calcs as $name => $value) {
        
#print "<font size='5'><strong>$name</strong> - ".$calcs[$name]."</font><br>";
        
if (array_key_exists($calcs[$name], $calcs)) {
            if (isset(
$aliases[$calcs[$name]])) {
                
$aliases[$calcs[$name]] .= "|" $name;
            } else {
                
$aliases[$calcs[$name]] = "|" $name;
            }
            unset(
$calcs[$name]);
        }
    }

    foreach (
$calcs as $name => $value) {
        if ((
$calc == "" && isset($calcs[$name])) || preg_match("/" preg_quote($calc'/') . "/"$name.(isset($aliases[$name]) ? $aliases[$name] : "").$calcs[$name]))
        {
            
$result true;

            if (!empty(
$_GET['only']) && !preg_match("/(^|\|)" preg_quote($calc'/') . "($|\|)/"$name.(isset($aliases[$name]) ? $aliases[$name] : ""))) {
                continue;
            }

            
$ref urlencode(preg_replace("/([^\|]*)\|.*/""$1"$name));

            if (!isset(
$aliases[$name])) {
                
$aliases[$name] = "";
            }

            echo 
"<p class='quote'>";
            print 
"<font size='5'><a name='$ref'> <strong>$name</strong></a>".$aliases[$name]."</font> добавлено пользователем<strong> ".
                
"<a href='http://irc.linsovet.org.ua/linux/users/".$authors[$name]."'>".$authors[$name]."</a></strong>. <a href='/calc/?calc=$ref&only=1'> permanent link</a><br>"
                 
link_it($calcs[$name]);
            echo 
"</p></center>\n";
        }
    }

    return 
$result;
}

?>

<head>
    <title>Записки на #linux@RusNet</title>
    <link rel='stylesheet' href='/style.css' type='text/css'>
</head>

<body>
    <h1 align="center">Записки на #linux@RusNet</h1>
    <center>
        <form method='GET' action='calc.php'>
            Search in calcs <input type='text' name='calc' value=''> <input type='submit'>
        </form>
    </center>

<?php

$type 
basename($_SERVER['SCRIPT_NAME'], '.php');
if (empty(
$type)) {
    
$type 'calc';
}
$db fopen("$type.data""r") or die("Database file not found!\n");

$calc "";
if (isset(
$_GET['calc'])) {
     
//Получаем $calc из url
    
$calc $_GET['calc']; //Получаем $calc из url
    
$calc my_url_decode($calc);
}

// Если $calc пуст
if (!empty($calc)) {
    echo 
"<a href='calc.php?calc='>Назад</a><br/>";
}

if (!
out_calc($db$calc))
    echo 
"calc \"$calc\" not found!";

fclose($db);

?>
    <hr>
    <p align='center'>
        CalcScript v. 1.1<br/>
        Author: <a href='http://mdma.org.ua'>mdma</a> special for <a href='http://irc.linsovet.org.ua'>#linux</a> channel on <a href='http://www.rusnet.org.ru'>RusNet</a>. 2011
    </p>
</body>