Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] phpBB codes, aber etwas komplizierter... (https://www.delphipraxis.net/41790-%5Bphp%5D-phpbb-codes-aber-etwas-komplizierter.html)

Meflin 8. Mär 2005 17:46


[PHP] phpBB codes, aber etwas komplizierter...
 
Hi,

folgendes Problem plagt mich: ich habe text in der form
Code:
blabla
[code] hier ein quelltext
nochmal geblah
Code:
 und vielleicht noch ein quelltext
[/code]
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*


alcaeus 8. Mär 2005 18:09

Re: [PHP] phpBB codes, aber etwas komplizierter...
 
Hallo Meflin,

such mal in der includes/bbcode.php folgende Zeile:

Code:
function bbencode_second_pass_code($text, $uid, $bbcode_tpl)
Beim 2.0.13er ist dies Zeile 558. Die Funktion wird nur fuer Text zwischen code-Tags aufgerufen.
Ich hab mir die Funktion allerdings nicht genauer angesehn, aber das sollte sein, was du brauchst.

Greetz
alcaeus

Meflin 8. Mär 2005 18:22

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 :?

Meflin 9. Mär 2005 18:46

Re: [PHP] phpBB codes, aber etwas komplizierter...
 
soderle, inzwischen hab ihc mir was gebastelt:
Code:
 $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);
 }
nur es funktioniert nicht :(

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?


phlux 11. Mär 2005 12:39

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:

SubData 11. Mär 2005 13:01

Re: [PHP] phpBB codes, aber etwas komplizierter...
 
$regex = "#\{code\}(.*?)\{/code\}#smiU";

Damit sucht er aber nach {Code} und nicht nach [Code]

Meflin 11. Mär 2005 13:41

Re: [PHP] phpBB codes, aber etwas komplizierter...
 
Zitat:

Zitat von SubData
$regex = "#\{code\}(.*?)\{/code\}#smiU";

Damit sucht er aber nach {Code} und nicht nach [Code]

jep, stimmt natürlicj, da ist mir wohl die etwas falsche version reingerutscht :wall: trotzdem müsste dann der text einfach ausgegeben werden, der durchsuchte text löst sich aber irgendwie komplett in luft auf :?
die aktuelle regular expression lautet:
Delphi-Quellcode:
$regex='/\[code\](.+)\[\/code\]/';
allerdings wird der [code] block nicht gefunden, count($code) ist 0. irgendwas an der expression stimmmt nicht...


Meflin 12. Mär 2005 19:14

Re: [PHP] phpBB codes, aber etwas komplizierter...
 

jfheins 12. Mär 2005 22:16

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:

Hier ist kein Code [code]IGhpZXIgYWJlciBzY2hvbiAuLi4g[/code]

Meflin 13. Mär 2005 13:02

Re: [PHP] phpBB codes, aber etwas komplizierter...
 
ich glaub ich spinn :wall: dein besipiel funzt, ja, nur übertragen auf meinen code:
Code:
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);
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 :(



Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz