php:zeichenkette einfärben
-
Was ist das denn schon wieder ?? preg_replac();
hauptsache es geht oder hat das andere Nachteile ???
-
ich kann mir nicht vorstellen dass dein Syntax-Highlighting vernünftig funktioniert, wenn du nur mit str_replace arbeitest
zu preg_replace: damit kannst du mit Hilfe eines regulären Ausdrucks (sag jetzt bitte nicht, dass du nicht weißt, was das ist) best. Teile in einem String ersetzen
-
also ich bin etwas noch anfänger aber so blöd wie du mich darstellst bin ich echt ned!!!! mein Mod färbt C++ Syntax Farbin ein! und ich will auch wie anführungszeichen einfärben weis aber ned wie ok?? eine Antwort wäre ganz nett!!
-
wie färbst du denn dein Code ein? Zeig mal deinen bisherigen Code.
z.B. if(stift) { ... } wird da das if in stift aufch eingefärbt?
-
patterns[0] = "/delete/"; patterns[1] = "/fiend/";
patterns[2] = "/inline/"; patterns[3] = "/new/";
patterns[4] = "/namespache/"; patterns[5] = "/operrator/";
patterns[6] = "/private/"; patterns[7] = "/prodected/";
patterns[8] = "/public/"; patterns[9] = "/struct/";
patterns[10] = "/enum/"; patterns[11] = "/template/";
patterns[12] = "/this/"; patterns[13] = "/throw/";
patterns[14] = "/try/"; patterns[15] = "/template/";
patterns[16] = "/int/"; patterns[17] = "/static/";
patterns[18] = "/const/"; patterns[19] = "/#include/";
patterns[20] = "/unsigned/"; patterns[21] = "/long/";
patterns[22] = "/try/"; patterns[23] = "/char/";
patterns[24] = "/#define/"; patterns[25] = "/#ifdef/";
$patterns[26] = "/#endif/";replacements[0] = "delete"; replacements[1] = "<b>fiend</b>";
replacements[2] = "inline"; replacements[3] = "<b>new</b>";
replacements[4] = "namespache"; replacements[5] = "<b>operrator</b>";
replacements[6] = "private"; replacements[7] = "<b>prodected</b>";
replacements[8] = "public"; replacements[9] = "<b>struct</b>";
replacements[10] = "enum"; replacements[11] = "<b>template</b>";
replacements[12] = "this"; replacements[13] = "<b>throw</b>";
replacements[14] = "try"; replacements[15] = "<b>template</b>";
replacements[16] = "int"; replacements[17] = "<font color=\"#2E04FF\">static</font>";
replacements[18] = "const"; replacements[19] = "<font color=\"#129600\">#include</font>";
replacements[20] = "unsigned"; replacements[21] = "<font color=\"#2E04FF\">long</font>";
replacements[22] = "try"; replacements[23] = "<font color=\"#2E04FF\">char</font>";
replacements[24] = "#define"; replacements[25] = "<font color=\"#129600\">#ifdef</font>";
$replacements[26] = "<font color=\"#129600\">#endif</font>";$text = str_replace("
","<br>C++ Code:</b><table border=\"0\" bgcolor=\"#ffffff\" align=\"center\" width=\"99%\"><td><p style=\"color:black;font-family:courier\">",$text); $text = str_replace("
","</p></td></table>",text = preg_replace($patterns, $replacements, $text);
-
da sies fehler gibts hier auch!
-
So wird das nicht gehen. Dein Algorithmus würde folgenden Code falsch markieren:
char* Text = "for while do int float";Denn Du unterscheidest nicht zwischen "im Code" und "in einem String".
Gleiches gilt für Kommentare.
-
TomasRiker schrieb:
So wird das nicht gehen. Dein Algorithmus würde folgenden Code falsch markieren:
char* Text = "for while do int float";Denn Du unterscheidest nicht zwischen "im Code" und "in einem String".
Gleiches gilt für Kommentare.achso und wie ist es dann nach deiner meinung möglich??
-
Mit Regulären Ausdrücken
-> preg_replace
-
ok schau ich mir mal an damit gets oder wie?? obwohl ich auf dem Ersten blick kein unterschied erkenn!
-
Wenn du weiter nach unten kommst wirst du bald den unterschied feststellen