![]() |
[PHP] phpBB codes, aber etwas komplizierter...
Hi,
folgendes Problem plagt mich: ich habe text in der form
Code:
nochmal geblah
blabla
[code] hier ein quelltext
Code:
[/code]
und vielleicht noch ein quelltext
also praktisch vergleichbar mit einem forumspost hier in der dp ;) nun will ich den text, der jeweils zwischen den [code] teilen steht, aber vor der ausgabe noch durch eine funktion jagen, die ihn formatiert, um ihn danach formatiert an seiner alten stelle im originaltext auszugeben. und meinen copy&paste preg_replace phpBB php code find ich auch nimmer :cry: also im moment habe ich keine ahnung wie ich das nun machen soll... *MFG* |
Re: [PHP] phpBB codes, aber etwas komplizierter...
Hallo Meflin,
such mal in der includes/bbcode.php folgende Zeile:
Code:
Beim 2.0.13er ist dies Zeile 558. Die Funktion wird nur fuer Text zwischen code-Tags aufgerufen.
function bbencode_second_pass_code($text, $uid, $bbcode_tpl)
Ich hab mir die Funktion allerdings nicht genauer angesehn, aber das sollte sein, was du brauchst. Greetz alcaeus |
Re: [PHP] phpBB codes, aber etwas komplizierter...
hi alcaeus,
thx erstmal, aber ich sollte vielleicht dazu sagen dass ich das ausserhalb des phpbbs brauche ... ich meine nur so tags wie eben die phpBB codes ;) oder meinst du dass diese funktion genau das tut, was allerdings schlecht wäre, weil ich die schonmal angeschaut habe, und die ist ziemlich... heavy :? |
Re: [PHP] phpBB codes, aber etwas komplizierter...
soderle, inzwischen hab ihc mir was gebastelt:
Code:
nur es funktioniert nicht :(
$regex = "#\{code\}(.*?)\{/code\}#smiU";
preg_match_all($regex, $source, $codes); for ($i = 0; $i < count($codes[0]); $i++){ $geshi = new GeSHi($codes[1][$i], 'delphi', $path); $output = str_replace($codes[0][$i], $geshi->parse_code(), $output); echo $output; unset($geshi); } 1. erfolgt überhauptkeine ausgabe mehr. nichtmal der ungeparste originaltext wird ausgegeben, nein, es wird einfach kein text mehr ausgegeben. fehlermeldung erhalte ich allerdings auch keine :( 2. stimmt die regular expression so? [code ]...[/code] soll ersetzt werden (natürlich ohne leerzeichen ;) ) 3. check ich die preg_match_all net so ganz. $source enthält den text, der geparst werden soll, und $codes zur weiteren verwendung. stimmt das so? |
Re: [PHP] phpBB codes, aber etwas komplizierter...
Hi!
Ich weiß nicht ob du noch Hilfe brauchst, ein Fehler der mir in deiner Regex ausgefallen ist, dass du smiU angegeben hast, soweit ich mich erinnern kann steht das s dafür, das der Interpreter den String für eine single line halten soll und m steht für multi line, also in dem Falle doppelt gemoppelt ;) ich würd das m an deiner stelle rausnehmen. mfg phlux :hi: |
Re: [PHP] phpBB codes, aber etwas komplizierter...
$regex = "#\{code\}(.*?)\{/code\}#smiU";
Damit sucht er aber nach {Code} und nicht nach [Code] |
Re: [PHP] phpBB codes, aber etwas komplizierter...
Zitat:
die aktuelle regular expression lautet:
Delphi-Quellcode:
allerdings wird der [code] block nicht gefunden, count($code) ist 0. irgendwas an der expression stimmmt nicht...
$regex='/\[code\](.+)\[\/code\]/';
|
Re: [PHP] phpBB codes, aber etwas komplizierter...
|
Re: [PHP] phpBB codes, aber etwas komplizierter...
*Beide PHP Bücher hervorkram*
*Nachguck* *Denk* ... Damit geht's ... (getested)
Code:
';
<?
$text = 'Hier ist kein Code [code] hier aber schon ... function code($string) { return "
Code:
";
" . base64_encode ($string[1]) . "
} echo preg_replace_callback ("/\[code\](.*)\[\/code\]/i", "code", $text); ?>[/code] Ausgabe: Zitat:
|
Re: [PHP] phpBB codes, aber etwas komplizierter...
ich glaub ich spinn :wall: dein besipiel funzt, ja, nur übertragen auf meinen code:
Code:
funzt da wiederum garnix :cry: $source entspricht deinem $text. muss wohl irgendwie an den internen abläufen des geshi highlighters liegen nur ich versteh absolut nicht warum das nicht geht :(
function code($string)
{ $geshi = new GeSHi($string[1], $language, $path); $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); //return base64_encode ($string[1]); return $geshi->parse_code(); } echo preg_replace_callback ("/\[code\](.*)\[\/code\]/i", "code", $source); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz