Problem mit String

PhoenixDH

Erfahrenes Mitglied
Gro/Kleinschreibung/Genauigkeit im String

Hallo,

ich bin gerade in meinem Forum dabei eine Funktion einzubauen, die es ermöglichen soll, aus einer Datenbank Begriffe und Erklärungen nach dem Posten rauszuholen, und um diese Begriffe ancronym-Tags herumzulegen.

Leider habe ich da ein Problem, ich schaffe es nicht das die Begriffe ersetzt werden. Hier mal meine Funktion:
Code:
function check_synonyms($text)
{

	global $pref;
	
	$r_synonym = thwb_query("SELECT syn, syn_description FROM $pref"."synonyms");
	if( mysql_num_rows($r_synonym) != 0 )
	{
		$syns = array();
		$descs = array();
		while( list($syn, $desc) = mysql_fetch_row($r_synonym) )
		{
			$syns[] = $syn;
			$descs[] = "[acronym=\"".$syn."\"]".$desc."[/acronym]";
		}
		mysql_free_result($r_synonym);
		$text = preg_replace($syns, $descs, $text);
	}

	return $text;
}

Ich weiß das es an der Zeile hängt:
Code:
$syns[] = "" . $syn . "";

Kann mir bitte jemand weiterhelfen ?

Hab jetzt ein anderes Problem, siehe unten, das hier ist gelöst !
 
Zuletzt bearbeitet:
Ne Fehlermeldung kommt nicht, es funktioniert einfach nicht, wenn ein Begriff der in der DB steht dabei ist steht dort gar nichts, der wird einfach weggelöscht und der Post ist leer !
 
Ich hab das ghanze mit der Funktion jetzt hinbekommen, nur hab ich noch ein Problem, es soll wirklich nur der Begriff im ganzen genommen werden,

d.h. SD != ESD != eSD !

Wie kann ich das in dem folgenden Code machen ?

Code:
function check_synonyms($text)
{

	global $pref;
	
	$r_synonym = thwb_query("SELECT syn, syn_description FROM $pref"."synonyms");
	if( mysql_num_rows($r_synonym) != 0 )
	{
		while( $synonym = mysql_fetch_array($r_synonym) )
		{
			if ( strstr($text, $synonym[syn] ) )
			{
			$desc = "[acronym=\"".$synonym[syn]."\"]".$synonym[syn_description]."[/acronym]";
			$text = str_replace($synonym[syn], $desc, $text);
			}
		}
	}

	return $text;
}

Müsste die Stelle sein:
Code:
if ( strstr($text, $synonym[syn] ) )

In $text und in $synonym[syn] stehen jeweils Strings drin !
Wie müsste das mit preg_match aussehen, da müsste das doch gehen, aber ich bekomme es leider nicht hin !
 
Zuletzt bearbeitet:
Zurück