Veröffentlicht 8. Juni 200421 j Hallo Jungs, ich möchte den Text, der in einer MySQL- Zeile liegt, auslesen und nach meinen Vorstellungen gestalten. Das Auslesen ist ja kein Problem, aber wie kann ich bestimmte Wörte z.B. in einer anderen Farbe darstellen oder Zeilenumbrüche erzwingen, etc.? Kann man da irgendwie mit Steuerzeichen arbeiten, bzw. selbst welche definieren? MfG Relian :marine
8. Juni 200421 j Nur mit MySQL kommst du nicht weit. Das was du vorhast geht wohl am einfachsten mit Regulären Ausdrücken, dem span-Tag und CSS.
8. Juni 200421 j Entweder du machste es wie Enrico gesagt hat, indem du den schon formatierten Text (HTML) in der DB ablegst, oder du definierst dir Platzhalter (irgendwelche Zeichen u.ä. die sonst wohl nicht vorkommen) und ersetzt diese nach dem auslesen. PHP: $MySQLString=mysql_query("SELECT Text FROM Tabelle"); $MySQLString = str_replace('%LF', '<br>', $MySQLString); Damit ersetzt du alle %LF in deinem Text durch <br>
8. Juni 200421 j Entweder du machste es wie Enrico gesagt hat, indem du den schon formatierten Text (HTML) in der DB ablegst, [...] Ich meine erst auslesen, dann formatieren!
8. Juni 200421 j Es gibt verschiedene Stringfunktionen in MySql, eine davon (die deinen Vorstellungen am ehesten entspricht) ist: REPLACE(str, match, replace) Wobei "str" der Text ist, in dem die Vorkommen von "match" durch "replace" ersetzt werden sollen. Bsp: Tabelle "table" hat das Feld "text" mit dem Wert: "nutzen Sie MySql in Verbindung mit PHP !" dann ergibt die Abfrage: SELECT REPLACE(`text`,'PHP','<i>PHP</i>') FROM `table` "nutzen Sie MySql in Verbindung mit <i>PHP</i> !" Sollen mehrere Strings ersetzt werden, dann müssen die REPLACE-Anweisungen verschachtelt werden: SELECT REPLACE( REPLACE( `text`, 'PHP', '<i>PHP</i>' ), 'MySql', '<b>MySql</b>' ) Stellt sich nur die Frage, ob das wie bereits erwähnt nicht besser nach dem Abfragen gelöst werden kann: $text = "nutzen Sie MySql in Verbindung mit PHP !"; $search = array ( 'PHP', 'MySql' ); $replace = array ( '<i>PHP</i>', '<b>MySql</b>' ); echo str_replace($search,$replace,$text); [/PHP] Oder bei Formatierungen wie in diesem Forum mit RegEx: [PHP] $text = "nutzen Sie [b]MySql[/b] in Verbindung mit [i]PHP[/i] !"; $search = array ( '/\[b\](.*?)\[\/b\]/is', '/\[i\](.*?)\[\/i\]/is' ); $replace = array ( '<i>$1</i>', '<b>$1</b>' ); echo preg_replace($search,$replace,$text);
8. Juni 200421 j $begriffe = array('wort1', 'wort2', ...); $pattern = "/(".implode(")|(",$begriffe).")/"; $replace = "<i>\$1</i>"; $highlightText = preg_replace($pattern, $replace, $dbResult); [/PHP]
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.