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

// read file contents
$data trim(file_get_contents('quote.data'));

$len strlen($data);
$last 0;
$braces 0;

for (
$i 0$n 0$i $len$i++) {
        if (
$data[$i] == "{") {
            if (
$braces == 0)
                
$last $i 1;
            
$braces++;
        } elseif (
$data[$i] == "}") {
            
$braces--;
            if(
$braces == 0) {
                
$quotes[$n++] = substr($data$last$i $last 1);
                
$last $i 1;
            }
        }
}

// process messages data
foreach ($quotes as $k => $v)
{
    
$v trim($v);
    
// echo "<!-- $v -->\n";

    
$len strlen($v);
    
$braces 0;

    for (
$i 0$i $len$i++)
        if (
$v[$i] == "{")
            
$braces++;
        elseif (
$v[$i] == "}")
            if(--
$braces == 0)
                break;

    
$message substr($v1$i 1);
    
$info    substr($v$i 1$len);

    
$info explode(' 'trim($info));
    
$nick explode('!'$info[1]);
    
$nick $nick[0];

    
$quotes[$k] = array(
        
'message'   => $message,
        
'info'      => array(
            
'date'      => strftime('%e.%m.%Y в %T'$info[0]),
            
'author'    => $info[1],
            
'nick'      => $nick
        
)
    );
}


// and show they all
?>
<html>
    <head>
        <title>Quotes #linux @ Rusnet</title>
        <link rel="stylesheet" href="/style.css" type="text/css">
    </head>
    <body>
        <h1 align="center">Цитатник #linux@RusNet</h1>
        <ul class="quotes">
        <?php foreach (array_reverse ($quotestrue) as $k => $quote): ?>
            <li id="quote_<?php echo ++$k ?>" class="quote">
                <div class="date"><a href="#quote_<?php echo $k ?>">#<?php echo $k ?></a></div>
                <div class="author">Опубликовал <strong title="<?php echo htmlspecialchars($quote['info']['author']); ?>"><?php echo htmlspecialchars($quote['info']['nick']); ?></strong> <?php echo $quote['info']['date']; ?></div>
                <p><?php echo nl2br(htmlspecialchars(trim(preg_replace('/((\[?\d{2}:\d{2}\]?)? ?((<)|( \* \S{2,})|( ::: )))|((?<=[^<] )\w+>)/'"\n$0"$quote['message'])))); ?></p>
                
            </li>
        <?php endforeach; ?>
            
        </ul>

        <p align="center"><a href="http://heliosart.info">(c) helios</a></p>
    </body>
</html>