[ERLEDIGT] BBCode in String ersetzen

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Lord Luigi
Mitglied
Beiträge: 34
Registriert: 14.03.2006 13:17

[ERLEDIGT] BBCode in String ersetzen

Beitrag 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
Zuletzt geändert von Lord Luigi am 22.12.2007 14:10, insgesamt 1-mal geändert.
Lord Luigi
Mitglied
Beiträge: 34
Registriert: 14.03.2006 13:17

Beitrag 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:
Lord Luigi
Mitglied
Beiträge: 34
Registriert: 14.03.2006 13:17

Beitrag 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?
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“