highlight_string |
webworker
Fachidiot Threadstarter
Beiträge: 115 |
highlight_string -- Hervorhebung der Syntax eines Strings
Hallo,
ich habe einen Text, in diesem Text steht u.a. zwischen [ php ] und [ / php ] PHP-Code.
Mein Problem: Wie kann ich aus dem Text die Teile zwischen [ php ] und [ / php ] herauffiltern und auf diesen Teil highlight_string anwenden?
Weiß jemand Rat?
|
 Profil
Editieren
Zitieren
|
MCM
Quasselstrippe
Beiträge: 422 |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10: | function callback($buffer) {
return(highlight_string($buffer));
}
ob_start("callback");
blablabla, PHP code
ob_end_flush(); |
So sollte es klappen ;)
---
cya MCM
[Je mehr Bürger mit Zivilcourage ein Land hat, desto weniger Helden wird es einmal brauchen]
[by Franca Magnani]
|
 Profil
Editieren
Zitieren
|
webworker
Fachidiot Threadstarter
Beiträge: 115 |
Was mein Problem ist: Es soll ja nur der Code zwischen [ php ] und [ / php ] mit highlight_string "formatiert" werden...
Klappt auch irgendwie nicht
//Edit: klappt schon, aber Problem ist nicht beseitigt...
Diese Nachricht wurde geändert von: webworker |
 Profil
Editieren
Zitieren
|
Ehemaliges Mitglied (#644)
Forenheld
Beiträge: 832 |
wieso gibst du uns nicht mal dein script ? ;)
|
 Profil
Editieren
Zitieren
|
webworker
Fachidiot Threadstarter
Beiträge: 115 |
Ich weiß nicht, ob euch 577 Zeilen Code nicht eher verwirren würden
1:
2:
3:
4:
5:
6:
7:
8: |
[/php] ..lalala..";
--highlight_string etc.--
?>
|
Und jetzt möchte ich nur das, was zwischen [ php] und [/ php] steht mit highlight_string formatieren... *wiederhol*
|
 Profil
Editieren
Zitieren
|
MCM
Quasselstrippe
Beiträge: 422 |
Dann musst du alles zwischen [php] und [/php] per preg_replace rausholen und highlight string machen!
---
cya MCM
[Je mehr Bürger mit Zivilcourage ein Land hat, desto weniger Helden wird es einmal brauchen]
[by Franca Magnani]
|
 Profil
Editieren
Zitieren
|
Ehemaliges Mitglied (#644)
Forenheld
Beiträge: 832 |
wieso wandelst du nicht einfach das und ?> um und gibst es per highlight string aus!?
|
 Profil
Editieren
Zitieren
|
webworker
Fachidiot Threadstarter
Beiträge: 115 |
Könnte mir diesem Codeschnipsel bitte jemand posten? Wäre cool...
Leider habe ich zu preg_replace auf PHP.net nur englisches gefunden... Und wenn ich das sehe denke ich, das es auch ziemlich lange dauern würde bis ich das könnte *g*
|
 Profil
Editieren
Zitieren
|
Can
Halbgott
Beiträge: 1324 |
1:
2:
3:
4:
5:
6:
7: | $text="Test Text ... blubb [php][/php] ..lalala..";
$start="[php]";
$end="[/php]";
$phpcode=substr($text,strpos($text,$start)+strlen($start));
$phpcode=substr($phpcode,0,strpos($phpcode,$end)); |
Und $phpcode kannste dann highlighten lassen.
---
" S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox
|
 Profil
E-Mail
Editieren
Zitieren
|
webworker
Fachidiot Threadstarter
Beiträge: 115 |
Danke, das funktioniert
Aber das Problem ist, das es nur beim ersten funzt. Wenn ich mehrere Codes (mehr mals [php] [/php]) wird bloß das erste umgewandelt... (Geht das ohne preg_replace eigentlich mehrmals?)
Und den Text muss ich auch irgendwie ausgeben...
|
 Profil
Editieren
Zitieren
|
Can
Halbgott
Beiträge: 1324 |
Mh...das musst du schon dazu sagen *g*
Dann ist das ohne regexps natürlich etwas schwieriger. Sollen die weiteren Code-Teile dann einfach angehängt werden?
---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox
|
 Profil
E-Mail
Editieren
Zitieren
|
webworker
Fachidiot Threadstarter
Beiträge: 115 |
Ich habe ein eigenes Forum geproggt... In den Posts möchte ich jetzt highlight_string anwenden. Wenn ein User mehrmals Code ausschnitte postet und dazwischen Text stehen hat müssen die Code ausschnitte natürlich auch in der richtigen Reihenfolge stehen
Sorry das ich nicht gleich gesagt habe worums geht
|
 Profil
Editieren
Zitieren
|
Philipp Gérard
Foren-Team
Beiträge: 1502 |
hier meine funktion mit ewas schrott drin, aber php lesen kannste ja, also lösch dir raus, was du nicht brauchst
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74: | /**
* Funktion zum Parsen von PHP-Code
*/
function parsephp($code) {
$code = str_replace(">", ">", $code);
$code = str_replace("<", "<", $code);
$code = str_replace("&", "&", $code);
$code = str_replace("[URL]", "", $code);
$code = str_replace("[/URL]", "", $code);
$code = str_replace(""", "\"", $code);
$code = str_replace('$', '\$', $code);
$code = str_replace(" ", "", $code);
$code = str_replace(" ", "", $code);
$code = stripslashes($code);
/*
* Code parsen:
*/
ob_start();
$oldlevel = error_reporting(0);
highlight_string($code);
error_reporting($oldlevel);
$buffer = ob_get_contents();
ob_end_clean();
$return = $buffer;
/*
* Zeilen berechnen:
*/
$return = str_replace(" ", "\n", $return);
$return = str_replace("\t", "", $return);
$codeteile = preg_split('#\n#', $return);
$laenge = sizeof($codeteile);
for($j=0;$j $return,
"{height}" => $height,
"{linenumbers}" => $linenumbers
);
$outvar = $template->open("php_code", $charray);
return $outvar;
}
$phpsearch[] = '/\[php\](.*)\[\/php\]/Uesi';
$phpreplace[] = 'parsephp(\'\1\')';
$text = preg_replace($phpsearch, $phpreplace, $text); |
---
Arbeit ist das Feuer der Gestaltung. - Marx
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
Can
Halbgott
Beiträge: 1324 |
Wieso baust du Schrott in deine Funktionen ein?
---
" S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox
|
 Profil
E-Mail
Editieren
Zitieren
|
Philipp Gérard
Foren-Team
Beiträge: 1502 |
naja, für ihn ist es schrott, da er keinen zugriff auf die verwendeten funktionen/klassen hat
---
Arbeit ist das Feuer der Gestaltung. - Marx
|
 Profil
E-Mail
Website
Editieren
Zitieren
|