Hallo,
wie kann ich die BBcodes aus einem Text (Posting) bei der Anzeige entfernen?
Im konkreten Fall verwende ich ein Forum mit einem Thema und zig Antworten dazu als Newsticker. Bei der normalen Anzeige des ganzen Textes sollen die BBcodes beibehalten bleiben, aber auf einer Vorschau z.B. 250 Zeichen lang, sollen die BBcodes herausgefiltert werden. Ich habe bis jetzt noch nichts gefunden, das mir weitergeholfen hat.
Gruß Helmut
BBcodes aus Text entfernen, wie geht das?
BBcodes aus Text entfernen, wie geht das?
Ich bin nicht ganz dicht.... na und.
-
- Ehemaliges Teammitglied
- Beiträge: 5703
- Registriert: 26.02.2004 00:09
Hallo Christian,
danke dir für den Link, das werde ich mir mal genauer anschauen. Ich habs jetzt mit "preg_replace()" gemacht, aber wie bekomme ich einen beliebigen Text mit ggf. Sonderzeichen zwischen bestimmten BBcodes wie z.B. heraus?
Gruß Helmut
danke dir für den Link, das werde ich mir mal genauer anschauen. Ich habs jetzt mit "preg_replace()" gemacht, aber wie bekomme ich einen beliebigen Text mit ggf. Sonderzeichen zwischen bestimmten BBcodes wie z.B.
Code: Alles auswählen
[center] Beispieltext mit (Sonderzeichen)[/center]
Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Hallo,
so ich habs jetzt hinbekommen, mein Code sieht so aus:
Damit werden alle BBcodes samt Text was sich zwischen "[center][size=***]" und "[/size][/center]" befindet, gelöscht. Vielleicht hat noch jemand eine Idee, den Code noch etwas zu optimieren.
Jetzt habe ich noch das Problem mit den Links wenn sich z.B. ein Link im Text befindet. Der wird ja in einen anklickbaren Link umgesetzt, aber wenn der Link dann nach einer bestimmten Länge des ausgegebenen Textes zwischen drinnen abgeschnitten wird, dann kommt es zu Problemen mit der Formatierung des Textes. Wie kann ich das Verhindern, dass der Link dann nicht abgeschnitten, sondern ganz angezeigt wird?
Gruß Helmut
so ich habs jetzt hinbekommen, mein Code sieht so aus:
Code: Alles auswählen
.....
$limit = 3;
$short_to = 300;
$sql = 'SELECT p.post_subject, p.post_text, p.post_id
FROM ' . POSTS_TABLE . ' p
WHERE p.topic_id = 21
ORDER BY p.post_id DESC
LIMIT ' . $limit;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$row['post_text'] = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $row['post_text']);
$zeichen1[0] ='/\[([a-z])\]/';
$zeichen1[1] ='/\[\/?([a-z])\]/';
$zeichen1[2] ='/\[(center)\]\[(size)=[0-9][0-9][0-9]\](.*?)\[\/?(size)\]\[\/?(center)\]/si';
$row['post_text'] = preg_replace($zeichen1, '', $row['post_text']);
$row['post_text'] = ( utf8_strlen($row['post_text']) > $short_to + 5 )? (utf8_substr($row['post_text'],0,$short_to) . '...') : ($row['post_text']);
$template->assign_block_vars('recenttopic2row', array(
'POST_TITLE' => censor_text($row['post_subject']),
'POST_TEXT' => censor_text($row['post_text']),
'U_NEWS_POST' => append_sid("{$phpbb_root_path}svisuite/nachrichten.$phpEx", 'n=' . $row['post_id']),
));
}
$db->sql_freeresult($result);
....
Jetzt habe ich noch das Problem mit den Links wenn sich z.B. ein Link im Text befindet. Der wird ja in einen anklickbaren Link umgesetzt, aber wenn der Link dann nach einer bestimmten Länge des ausgegebenen Textes zwischen drinnen abgeschnitten wird, dann kommt es zu Problemen mit der Formatierung des Textes. Wie kann ich das Verhindern, dass der Link dann nicht abgeschnitten, sondern ganz angezeigt wird?
Gruß Helmut
Ich bin nicht ganz dicht.... na und.