[PHP] Code hervorheben WIE BBCODE

  • Themenstarter Themenstarter encom
  • Beginndatum Beginndatum
Genau das hatte ich schon Versucht, aber geklappt hats nicht! Sobald das Script beim ersten [ /PHP] ankommt, steigt es aus der schleife aus! Warum auch immer! Aber ich versuchs nochmal! Vielleicht hatte ich einen Fehler drinne!
 
Probier mal Folgendes:
Code:
$text = preg_replace('|\[php\](.+?)\[/php\]|eis', 'phpTags("$1")', $post);
 
@Gumbo:
Wenn ich das in die while-Schleife schreibe hab ich ne Endlosschleife, und ohne while wirds nicht verschachtelt! Mein Teststring:

PHP:
$post="[ PHP]<? if(){ this; } [ PHP] else{ that } [ /PHP] echo 'haha'; ?>[ /PHP]";
(PHP-Tags ohne Leerzeichen)

Mit Schleife:
PHP:
while(preg_match('|\[PHP\](.+?)\[/PHP\]|eis',$post)){
    preg_replace('|\[PHP\](.+?)\[/PHP\]|eis', 'phpTags("$1")', $post);
}

Ohne Schleife:
PHP:
preg_replace('|\[PHP\](.+?)\[/PHP\]|eis', 'phpTags("$1")', $post);

Ausgabe:

<? if(){ this; } [ PHP] else{ that }
echo 'haha'; ?>
 
Für den Fall, dass es jemand mal verschachteln will! Ich habe gerade mit einem Forum, besser gesagt mit der Planung, begonnen und sammle jetzt alles zusammen! Und wenn dann in diesem Forum jemand, aus welchem Grund auch immer, diese PHP-Tags verschachtelt, dann sollte das auch verschachtelt dargestellt werden!

Ich weiß es hat keinen Sinn einen Post mit zwei oder mehreren verschachtelten PHP-Felder zu Posten, aber ich will auf möglichst viele eventualitäten vorgereitet sein.

Auch wenns hier im Forum nicht geht:
PHP:
<? if(){ this; }  else{ that }  echo 'haha';

Ich hätte gern, dass mein Forum das kann :-)

//edit: naja, was solls, dann werde ich mich damit abfinden müssen! Sollte ich noch einen Weg finden poste ich meine Lösung
 
Zuletzt bearbeitet:
dline hat gesagt.:
Hi, ich habe gerade ein ähnliches Problem. Ich habe ein paar Anleitungen geschrieben und möchte diversen php code aus einer MYSQL Datenbank highlighten.

Wenn ich die highlightfunktion in die Datenbank eintreage bekomme ich nur "?> " in meinem Ergebnisformular ausgegeben.

HAt einer von euch eine Idee, wie ich meinen Text Highlighten kann?

Über Hilfe bin ich sehr dankbar.
Viele Grüße dline

Ich habe jetzt umgestellt auf highlight_file. jetzt wird überhaupt nichts mehr ausgegeben. sprich nicht mal mehr das: "?>"

hat irgendwer von euch einen Lösungsvorschlaf
 
In Datenbanken sollten die Daten am besten im Urzustand gespeichert werden. Dies hat den Vorteil, dass spätere eine Verarbeitung (Formatierung, etc.) mit den Rohdaten arbeitet und es daher zu keinem Qualitätsverlust der Daten kommt.
Spricht: erst zur endgültigen Ausgabe sollte die Syntax hervorgehoben werden.
 
HI Gumbo,
mein Code um die Daten aus der DB zu lesen ist:
Code:
 while ($row= mysql_fetch_array($result))
 
 {
 
 echo $row[faqtext];
 
 
 
  };
 
 ?>
die Daten stehen also alle im Feld Faqtext.
Wie soll ich es anstellen, das die Daten gehighlighted werden
 
dline hat gesagt.:
HI Gumbo,
mein Code um die Daten aus der DB zu lesen ist:
Code:
  while ($row= mysql_fetch_array($result))
  
  {
  
  echo $row[faqtext];
  
  
  
   };
  
  ?>
die Daten stehen also alle im Feld Faqtext.
Wie soll ich es anstellen, das die Daten gehighlighted werden

Hi Nero, in dem Faq Feld steht ja der gesamte Text der Anleitung drin. Der würde dann ja alles highlighten oder
Ich möchte ja, dass nur der eigentliche code hervorgehoben wird und nicht die Beschreibung dazu. Ich könnte allerdings ein weiteres feld machen das ich "code" nenne und es dann über deinen codevorschlag ausgeben lassen. Allerdings kann ich es dann nicht genau platzieren. DEr Code wäre somit entweder unter, oder über der Beschreibung
 
Zurück