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; }