| 
<?php
#########################################
 # Class Apriori 0.3.000DE        #
 # Modified part of VXi Web Platform    #
 # © RusBreathLess, 2007            #
 # [email protected]            #
 # http://rusbreathless.livejournal.com     #
 #########################################
 
 // Security check
 //if(!eregi("Apriori.php",implode(";",get_included_files()))){ exit;}
 
 // Change this string, insert your favorite db abstraction layer :-)
 
 mysql_connect("localhost","root");
 mysql_select_db("Test");
 
 /*
 Data structure:
 
 Matcher = Pattern for search.
 Replacer = Code, that evaluate and must set var $Output; Pattern text will be replaced by this variable.
 Dynamic - parameter, which define, evaluate Replacer's code onу time, or for every founded pattern.
 Mode - parameter, which sort "parslets" by categories. Ex: Smiles, BBCodes, Formatters, etc.
 
 */
 
 class Apriori
 {
 function Parse($Data, $Mode)
 {
 global $PDO;
 $Parsed = $Data;
 $Parslets = mysql_query("SELECT * FROM Parslets WHERE Mode='".$Mode."'");
 
 while ($Parslet = mysql_fetch_assoc($Parslets))
 {
 switch ($Parslet["Type"])
 {
 case 'Java':    $Options = "jim"; break;
 case 'GNU':        $Options = "uim"; break;
 case 'GREP':    $Options = "gim"; break;
 case 'EMACS':    $Options = "cim"; break;
 case 'Ruby':    $Options = "rim"; break;
 case 'Perl':     $Options = "zim"; break;
 case 'Posix':    $Options = "bim"; break;
 case 'PosixEx': $Options = "dim"; break;
 default: $Options = "dim"; break;
 }
 
 mb_regex_set_options($Options);
 
 $Output=null;      // Variable for Parslet output.
 $Inputs=array(); // Pockets for eregi. RTFM.
 if (eregi($Parslet["Matcher"],$Parsed,$Inputs)) eval($Parslet["Replacer"]);
 // Dynamic, or not - code must be evaluate once time
 
 // Main cycle. For every parslet, for every match.
 while (eregi($Parslet["Matcher"],$Parsed,$Inputs))
 {
 if ($Parslet["isDynamic"]=="True") // Dynamic?
 {
 $Output=null; // Clean output
 eval($Parslet["Replacer"]); // Eval Replacer. Replacer's code must set "Output" variable.
 };
 $Parsed = str_replace($Inputs[0],$Output,$Parsed); // Replace and enjoy!
 };
 $Output=null;
 };
 return $Parsed; // Yeah!
 }
 };
 
 ?>
 |