 |
 |
 |
| |
Hallo.. Ich will einen bb-Code mit highlight-Funktion machen.. Habe auch schon so einiges ausprobiert, aber nichts will klappen.. könnt ihr mir helfen? Hier der Code: Code: In Zwischenablage kopieren (nur IE)
Gruß, Fredmonster! |
|
|
 |
 |
 |
| |
Antworten |
|
| |
1. wie kommst du denn darauf, dass reg_replace irgendetwas anderes tun sollte, als vor den gematchten text hightlight_string( zu schreiben? wenn du schon möchtest, dass etwas evaluiert wird, dann musst du auch den passenden modifier setzen, in diesem falle also das "e": http://de.php.net/preg_replace (beispiel 4)
2. sorry, aber verstehe es immer noch nicht.. müsste der Code dann so lauten? Code: In Zwischenablage kopieren (nur IE)
Gruß, Fredmonster!
3. Autsch!
4. Also, ich möchte mal Bedenken äußern: preg_replace mit dem modifier e birgt Gefahren!!
Eingesetzt in einem Forum oä. können Besucher eigenen Code zur Ausführung bringen!
Alternativ: http://qbnz.com/highlighter/ Hat auch den Vorteil, daß es einen ganzen Berg von Sprachen abdeckt..
http://www.christian-seiler.de/projekte/php/bbcode/index.html Hier wird ua. bschrieben, warum reguläre Ausdrüche nicht unbedingt das Optimum für BBCode interpreter sind...
5. 1. das muster ist falsch
nicht gut, aber auf der richtigen fährte: Code: In Zwischenablage kopieren (nur IE)
2. der zweite parameter in preg_replace ist falsch
auch nicht toll, aber klappt im rahmen der möglichkeiten Code: In Zwischenablage kopieren (nur IE)
3. mit highlight_string wirst du nicht glücklich werden weil die funktion keinen rückgabewert hat, sondern den übergebenen string direkt ausgibt. d.h., erst wird der formatierte text angezeigt, und erst dann der bearbeitete text. schau es dir am besten an einem beispiel an Code: In Zwischenablage kopieren (nur IE)
blub blub ';
echo preg_replace("!\[php\](.*)\[/php\]!ismUe","highlight_string('<?php \\1 ?>')", $text); [/CODE] du solltest besser preg_replace_callback verwenden und dir dort eine möglichkeit überlegen, den text zu highlighten (dazu gibt es irgendwo schon eine fertige klasse => google).
6. http://aidanlister.com/repos/v/PHP_Highlight.php
|
|
|