Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Highlight Funktion..

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)
1">

Gruß, Fredmonster!
Hier gehts zum Orginal Eintrag "Highlight Funktion.." im Forum

Antworten

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)
2">

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)
3">

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)
4">

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)
5">

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


Hier gehts zum Orginal Eintrag "Highlight Funktion.." im Forum
 
phpforum.de | Impressum | Handy Bundles