Seite 1 von 1

[ERLEDIGT] BBCode in String ersetzen

Verfasst: 16.12.2007 13:35
von Lord Luigi
Tach!

Ich habe eine selbstdefinierte Variable $text. In dieser Variable möchte ich
alle selbstdefinierten BBCodes (wie z.B. Spoiler) und Standard-BBCodes (z.B. )
ersetzen. Gibt es da eine Möglichkeit?

THX im voraus. =D

Verfasst: 20.12.2007 20:04
von Lord Luigi
*push*

Klappt das, wenn ich in $text den first_pass_match mit first_pass_replace
und second_pass_match mit second_pass_replace ersetze?
Bitte antworten :cry:

Verfasst: 21.12.2007 12:37
von Lord Luigi
Ich hab mir jetzt mal folgende code.php erstellt:

Code: Alles auswählen

<?php

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);

$text = "[edit=1]lol[/edit][h2]lol[/h2][ueber]ähh.. lol?[/ueber][tabelle][zeile=h][zelle]l[/zelle][zelle]l[/zelle][/zeile][zeile=3][zelle]l[/zelle][zelle]l[/zelle][/zeile][zeile=1][zelle]l[/zelle][zelle]l[/zelle][/zeile][zeile=3][zelle]l[/zelle][zelle]l[/zelle][/zeile][/tabelle]";

$sql = 'SELECT * FROM phpbb_bbcodes;';
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
   $uid = 1337;
   $s1 = str_ireplace('$uid', $uid, $row['first_pass_match']);
   $r1 = str_ireplace('$uid', $uid, $row['first_pass_replace']);
   $s2 = str_ireplace('$uid', $uid, $row['second_pass_match']);
   $r2 = str_ireplace('$uid', $uid, $row['second_pass_replace']);
   $output = preg_replace($s1, $r1, $text);
   $output = preg_replace($s2, $r2, $output);
}
$db->sql_freeresult($result);

echo $output;

?>
Wenn ich dort eine WHERE bbcode_id = 25-Klausel setze, funktioniert nur der BBCode
mit der bbcode_id 25. Wenn ich die weglasse, funktioniert kein BBCode.

Woran kann das liegen?