Ich habe eine Datenbank, in der Abkürzungen und die dazugehörigen Beschreibungen gespeichert sind.
Wenn jetzt in meinem Forum jemand einen Post macht, soll überprüft werden ob die Abkürzung in dem Text uns soll durch ein Acronym-Tag ersetzt werden. Das funktioniert auch soweit, nur kann es ja vorkommen, das es mehrere Abkürzungen gibt die fast gleich sind, aber andere Beschreibungen haben.
Das wäre z.B. bei mir der Fall bei
ESD, eSD und SD !
Jetzt habe ich das probiert, die Ersetzungen macht er immer, also wenn z.B. eSD vorkommt, ersetzt er erst das eSD danch aber nochmal das SD, das soll nicht sein, denn dann stimmt der Code nimmer !
Wie kann ich das bei der Funktion ändern ?
function check_synonyms($text) { global $pref; $r_synonym = thwb_query("SELECT syn, syn_description FROM $pref"."synonyms ORDER BY syn ASC"); if( mysql_num_rows($r_synonym) != 0 ) { while( $synonym = mysql_fetch_array($r_synonym) ) { if (preg_match("/$synonym[syn]/",$text)) { $desc = "[acronym=\"".$synonym[syn]."\"]".$synonym[syn_description]."[/acronym]"; $text = str_replace($synonym[syn], $desc, $text); } } } return $text; }
Es soll also immer das komplette Wort verglichen werden, case sensitive !
@theDon: auch mit deinem Link bin ich net weiter gekommen !