function acronym_pass($message)
{
static $orig, $repl;
if( !isset($orig) )
{
global $db, $board_config;
$orig = $repl = array();
$sql = 'SELECT * FROM ' . ACRONYMS_TABLE;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain acronyms data", "", __LINE__, __FILE__, $sql);
}
$acronyms = $db->sql_fetchrowset($result);
if( count($acronyms) )
{
usort( $acronyms, 'acronym_sort' );
}
for ($i = 0; $i < count($acronyms); $i++)
{
$orig[] = '#\b(' . phpbb_preg_quote( $acronyms[$i]['acronym'], "/") . ')\b# i';
$descrip =$acronyms[$i]["description"];
$acrony = htmlentities($acronyms[$i]["acronym"], ENT_QUOTES);
$repl[] = "" . $acrony . "";
}
}
if( count( $orig ) )
{
$segments = preg_split( '#(.+?|<.+?>)#si' , $message, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
$message = '';
foreach( $segments as $seg )
{
if( $seg[0] != '<' && $seg[0] != '[' )
{
$message .= str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#eis', "preg_replace(\$orig, \$repl, '\\0')", '>' . $seg . '<'), 1, -1));
}
else
{
$message .= $seg;
}
}
}
return $message;
}