Registrieren  •  Login 
  
 
im Forum


 FAQ   Mitgliederliste   Benutzergruppen   Teamseite   Suchen 

PHP und HTML Highlighter...

 
Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
fanrpg
Mitglied
Mitglied



Anmeldedatum: 14.12.2006
Geschlecht: Keine Angabe
Beiträge: 126
Wohnort: Windeck

BeitragVerfasst am: 21.09.2007, 20:25    Titel: PHP und HTML Highlighter...

Also ich habe ein Problem mit einer function die gleichzeitig html und php highlighten soll.

Das Problem: Das Highlighten an sich funktioniert.. nur er gibt das gehighlightete nur an der falschen stelle aus und das 2mal... (zumindest php).

Hier erstmal der Link: http://dev-fanrpg.synn-hosting.de/html.php
Wie man sieht wird das PHP an den Anfang geklatsch... was so nicht sein soll.
Denn es soll dahin wo
Code:
         <div align="center">&quot;Test&quot;
         1
         </div>

steht. Also zwischen den DIV's. Aber die 1 steht nirgendwo... nicht an der Stelle, nicht im Originalscript... Crying or Very sad

Und hier mal der Code..
PHP-Code:
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
function highlight_html$str )
{
    
preg_match_all("#<\?(.*?)\?>#is"$str$php);
    foreach( 
$php as $id => $found )
    {
        foreach( 
$found as $id2 => $found2 )
        {
            
$str preg_replace("#<\?".preg_quote($found2"#")."\?>#is""{"."PHP".$id.".".$id2."}"$str);
        }
    }

    
$str htmlspecialchars($str);
    
    
$search = array(
        
'#&lt;(.*?)&gt;#is',
        
'#&quot;(.*?)&quot;#is',
        
'#&lt;script(.*?)&gt;#i',
        
'#&lt;/script&gt;#is',
        
'#&lt;style(.*?)&gt;#i',
        
'#&lt;/style&gt;#is',
        
'#&lt;!--(.*?)--&gt;#is',
        
'#&amp;(.*?);#i',
    );
    
    
$replace = array(
        
'<span style="color:#0000FF;">&lt;\1&gt;</span>',
        
'&quot;<span style="color:#006600;">\1</span>&quot;',
        
'<span style="color:#CC3333;">&lt;script\1&gt;</span>',
        
'<span style="color:#CC3333;">&lt;/script&gt;</span>',
        
'<span style="color:#FF66FF;">&lt;style\1&gt;</span>',
        
'<span style="color:#FF66FF;">&lt;/style&gt;</span>',
        
'<span style="color:#CCCCCC;">&lt;!--\1--&gt;</span>',
        
'<span style="color:#000000;"><strong><i>&amp;\1;</i></strong></span>'
    
);
    
    
$str preg_replace($search$replace$str);
    
    
    foreach(
$php as $id => $found)
    {
        foreach(
$found as $id2 => $found2)
        {
            
$str str_replace("{"."PHP".$id.".".$id2."}"highlight_string($php[$id][$id2]), $str);
        }
    }

    return 
"<pre>".$str."</pre>";
}

$output =
'<html>
<head>
<title>Test</title>
<meta name="keywords" content="test,php,html,xhtml" />
<meta name="author" content="tester" />
<script type="text/javascript">
<!--

//-->
</script>
<style type="text/css">
<!--
body {
margin:0px;
padding:0px;
}
-->
</style>
</head>
<body>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th class="tHead">Hallo</th>
</tr>
<tr>
<td style="color:#000000;">
    <table border="0" width="100%">
    <tr>
    <td colspan="3">Test</td>
    </tr>
    <tr>
    <td colspan="3">Test2</td>
    </tr>
    <td>
        <table border="0" width="100%">
        <tr>
        <td>Test</td>
        </tr>
        </table>
    </td>
    <td>
        <table border="0" width="100%">
        <tr>
        <td>
            <div align="center">&quot;Test&quot;
            <?php echo "Test" ?>
            </div>
        </td>
        </tr>
        </table>
    </td>
    </tr>
    </table>        
</td>
</tr>
</table>
</body>
</head>'
;

echo 
highlight_html($output);

?>


Zur Funktionsweise.. zuerst wird das php herausgefiltert (weil das sonst durch das html hightlighting zerstört wird...) und in {PHPx.x} ersetzt zum späteren hightlighten. Dann wird zuerst das HTML gehightlightet. Dann nehme ich wieder den PHP Krams, nimmt die ID's und ersetzt {PHPx.x} durch highlight_string($php[$id][$id2]).

Aber warum, warum nur, klatsch er das PHP an den Anfang? Und das gleich 2mal? Crying or Very sad Crying or Very sad Crying or Very sad

*die welt nicht mehr versteh*

Edit: Ein Fehler ist mir aufgefallen hier im PHP Highlighter... der ersetzt &quot; durch " hier im Highlighter... den im $replace steht statt " nämlich &quot;

Dieser Beitrag wurde insgesamt 2 mal geändert. Zuletzt von fanrpg.
Nach oben
Benutzer-Profile anzeigen fanrpg ist derzeit offline Private Nachricht senden Website dieses Benutzers besuchen
NoMoKeTo
Ehemaliger
Ehemaliger



Anmeldedatum: 13.07.2006
Geschlecht: Männlich
Beiträge: 1019
Wohnort: NRW

BeitragVerfasst am: 21.09.2007, 20:38    Titel:

Moin!

http://www.php.net/manual/de/function.highlight-string.php

gibt den String str mit hervorgehobener Syntax (Syntax highlighting) aus.

Wink

NoMoKeTo
...hat keine ahnung wie man das ändert
_________________
Ich spreche Esperanto und lerne auf diesem Weg tolle Leute kennen - weltweit!
Nach oben
Benutzer-Profile anzeigen NoMoKeTo ist derzeit offline Private Nachricht senden Website dieses Benutzers besuchen
fanrpg
Mitglied
Mitglied



Anmeldedatum: 14.12.2006
Geschlecht: Keine Angabe
Beiträge: 126
Wohnort: Windeck

BeitragVerfasst am: 21.09.2007, 20:43    Titel:

NoMoKeTo hat Folgendes geschrieben:
Moin!

http://www.php.net/manual/de/function.highlight-string.php

gibt den String str mit hervorgehobener Syntax (Syntax highlighting) aus.

Wink

NoMoKeTo
...hat keine ahnung wie man das ändert

Aber doch als Rückgabewert oder? Shocked

*nachguck*

Warum gibt es eine undokumentiertes zweites Feld bei hightlight_string() die eine Rückgabe möglich macht?
Code:
echo highlight_string($str, true)

Steht da nix von.. hat sich erledigt danke. Confused
Nach oben
Benutzer-Profile anzeigen fanrpg ist derzeit offline Private Nachricht senden Website dieses Benutzers besuchen
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 29 Jahre
Beiträge: 13896
Wohnort: Wien

BeitragVerfasst am: 22.09.2007, 10:01    Titel:

Falls du einen Highlighter für andere Programmiersprachen suchst: Davon gibt es viele in PHP geschriebene Klassen Wink

Wegen dem &quot; Fehler: Das scheint allgemein im ganzen Beitrag nicht zu gehen, vielleicht sogar ein phpBB Bug. Werde mir das einmal ansehen Wink

EDIT: Der Bug ist behoben, siehe hier: https://www.forum.happytec.at/viewtopic.php?p=19142#19142


MfG Christian
_________________


Dieser Beitrag wurde insgesamt 1 mal geändert. Zuletzt von killerbees19.
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht teilnehmen.
Du kannst Dateien in diesem Forum nicht hochladen.
Du kannst Dateien in diesem Forum nicht herunterladen.

 

Alle Zeiten sind GMT + 2 Stunden (Sommerzeit)
Aktuelles Datum und Uhrzeit: 30.03.2020, 21:38
Nach oben
Valid HTML 4.01 Transitional
Valid CSS!
Software based on work from the phpBB-Group  •  Deutsche Übersetzung von phpBB.de

netcup - Internetdienstleistungen
 
 
[ happytec.at | forum.happytec.at | blog.happytec.at | esports.happytec.at | event.happytec.at ]