Location: PHPKode > scripts > Apriori > apriori/Apriori.php
<?php
#########################################
# Class Apriori 0.3.000DE		#
# Modified part of VXi Web Platform	#
# © RusBreathLess, 2007			#
# hide@address.com			#
# 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&#1091; 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!
	}
};

?>
Return current item: Apriori