ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1444
1444
EMPFEHLEN
-
22.04.03 10:17 #1
- Registriert seit
- Mar 2003
- Ort
- Flensburg
- Beiträge
- 13
Hi,
ich habe folgendes Problem
Ich möchte alles was zwischen [ code ] und [ /code ] steht mit highlight_string bearbeiten und das dann zwischen <div> und </div> ausgeben. Der Text der Nicht innerhalb von [ code ] und [ /code ] steht soll nicht mit highlight_string bearbeitet werden.
Ich weiß das das mit Regulären Audrücken geht nur leider kapier ich das irgendwie nicht.
Ich hoffe Ihr könnt mir irgendwie weiterhelfen.
Danke im vorraus.
PS: Es kann auch mehrmals einen Bereich mit [ code ] [ /code ] geben
-
22.04.03 10:55 #2
- Registriert seit
- Nov 2002
- Ort
- Altdorf bei Nürnberg
- Beiträge
- 3.027
Zuerst musst du natürlich das Zeugs zwischen den code-Tags herausfiltern. Dann muss man das ganze highlighten. Funktionen ausführen geht bei den RegExp (Regular Expressions, Reguläre Ausdrücke) mit dem Schalter e:
Nun brauchen wir noch die Funktion editphpcode(). Hier muss ein ob-Buffering erfolgen, weil die PHP-Funktion highlight_string den code direkt ausgibt:PHP-Code:$text = preg_replace("/(\[code])(.*)(\[\/code\])/eisU", "editphpcode('$2')", $text);
OK, ich gibs zu, der zweite Teil der editphpcode Funktion is ausm WBB geklautPHP-Code:function editphpcode($phpc) {
$phpc = str_replace("\\\"","\"",$phpc);
$phpc = html_entity_decode($phpc);
$phpc = trim($phpc);
ob_start();
$oldlevel=error_reporting(0);
highlight_string($phpc);
error_reporting($oldlevel);
$buffer = ob_get_contents();
ob_end_clean();
return "<div>$buffer</div>";
}
-
Fast perfekt, Nuinmundo.
Hier mal ein Aufruf mit einer korrekten Regexp (hat bei deinem Beitrag sicher wieder das Forum verhunzt):
Und dann wäre noch zu erwähnen, dass highlight_string den übergebenen String wie eine PHP-Datei behandelt. D.h., alle Bereiche, die nicht in <? ?> stehen, werden auch nicht wie PHP-Code eingefärbt. Damit auch Code ohne <? ?> korrekt gehighlighted wird, setzt man vor dem Aufruf von highlight_string ein <? an den Anfang und ein ?> an das Ende des Strings. Nach dem Highlighten entfernt man diese dann wieder. Hier mal eine erweiterte Funktion:PHP-Code:$text = preg_replace("/\\[code\\](.*)\\[\\/code\\]/eisU", "editphpcode('$1')", $text);
HTHPHP-Code:<?
function editphpcode($phpc)
{
$phpc = str_replace("\\\\\\"","\\"",$phpc);
$phpc = html_entity_decode($phpc);
$phpc = trim($phpc);
$tag = false;
// Bei Bedarf PHP-Tag setzen...
if (!strstr($phpc, "<?") && !strstr($phpc, "?>")) {
$phpc = "<?\n".$phpc."\n?>";
$tag = true;
}
ob_start();
$oldlevel=error_reporting(0);
highlight_string($phpc);
error_reporting($oldlevel);
$buffer = ob_get_contents();
ob_end_clean();
// ...und wieder entfernen
if ($tag) {
$buffer = str_replace("<?", "", $buffer);
$buffer = str_replace("?>", "", $buffer);
}
return "<div>$buffer</div>";
}
?>
// edit: Eine Ironie des Schicksals, dass man an dieser Funktion auch gleich das Manko selbiger sieht: Steht jetzt im übergebenen String zwar ein <? und ein ?> in "" oder '', nicht aber außerhalb eines Strings, so kann man durch ein einfaches strstr nicht mehr feststellen, ob man jetzt <? ?> setzen muss oder nicht.Geändert von Matthias Reitinger (22.04.03 um 12:52 Uhr)
„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
22.04.03 13:10 #4
- Registriert seit
- Nov 2002
- Ort
- Altdorf bei Nürnberg
- Beiträge
- 3.027
Die RegExp hat das Board zerhauen. (Ich wiess nicht, benutzen die hier stripslashes?)
Zu 2:
Mit ereg(), oder preg_match()?
Ähnliche Themen
-
Eclipse Include / Code Aufklappen ? Code unleserlich ?
Von bziegenhagen im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 23.02.08, 12:03 -
PHP code und HTML Code im Forum anzeigen lassen!
Von redheador im Forum PHPAntworten: 1Letzter Beitrag: 09.04.07, 18:44 -
Mit GlueGen automatisch JNI Code generieren um C Code aufzurufen
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 13.01.07, 20:42 -
Tool das automatisch den Java Code an die Code Conventions anpasst
Von The-God im Forum JavaAntworten: 1Letzter Beitrag: 30.10.05, 13:29 -
Brauche Hilfe - Code identifizieren - wozu der Code bestimmt ist
Von Lukasz im Forum PHPAntworten: 3Letzter Beitrag: 20.02.05, 20:58





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren