Akronym Test
Verfasst: So 23.Jan, 2005 11:55
MOD (alles groß)
mod (alles klein)
Mod (groß/klein)
mod (alles klein)
Mod (groß/klein)
Das Akronym wird so dargestellt, wie es im ACP definiert wurde. Finde ich gut.oxpus hat geschrieben:Das Feld ist in der Datenbank sicherlich ein Index und die Datenbank prüft dann unabhängig der Groß-/Kleinschreibung. Somit führt das zu einem Fehler.
Wenn man allerdings in die Ersetzen-Funktion ein "i" als Indikator einbaut, werden die Suchmuster unabhängig der Groß-/Kleinschriebung gesucht:Code: Alles auswählen
# #-----[ OPEN ]----- # includes/bbcode.php # #-----[ FIND ]----- # $orig[] = '#\b(' . phpbb_preg_quote( $acronyms[$i]['acronym'], "/") . ')\b#'; # #-----[ REPLACE WITH ]----- # $orig[] = '#\b(' . phpbb_preg_quote( $acronyms[$i]['acronym'], "/") . ')\b#i';
Code: Alles auswählen
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#';
//$orig[] = "/(?<=.\W|\W.|^\W)" . phpbb_preg_quote($acronyms[$i]['acronym'], "/") . "(?=.\W|\W.|\W$)/";
$repl[] = '<acronym title="' . $acronyms[$i]['description'] . '">' . $acronyms[$i]['acronym'] . '</acronym>'; ;
}
}
if( count( $orig ) )
{
$segments = preg_split( '#(<acronym.+?>.+?</acronym>|<.+?>)#s' , $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)))*)\<))#se', "preg_replace(\$orig, \$repl, '\\0')", '>' . $seg . '<'), 1, -1));
}
else
{
$message .= $seg;
}
}
}
return $message;
}