Profil | Mitglieder | Registrieren | Start | Suche


PHP-Support.de » Programmierung » PHP & MySQL » Codeschnipsel » Highlight Klasse    » Hallo Gast [Login | Registrieren]

Neues Thema | Antworten   

Autor Beitrag
Gast


     Highlight Klasse Zitat | Bearbeiten

Diese Klasse hier dient zum hervorheben von Html und PHP Code.

 PHP 
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:
<?php
/**
 * Highlight Klasse
 * @version 0.0
 * @author benjamin <spam@abba-skript.de>
 *
 * Diese Klasse dient zum hervorheben von Html und PHP Code.
 */
class highlight {
    private 
$ersetzen = array(array());
    private 
$codes = array(array());

    
/**
     * PHP Code einfärben
     * @param string $text Text zum einfärben
     * @return string eingefärbter PHP Code wird zurück gegeben. 
     */
    
public function php($text) {
        
$text highlight_string($textTRUE);
        return 
$text;
    }

    
/**
     * HTML Code einfärben
     * @param string $text Text zum einfärben
     * @return string eingefärbter HTML Code wird zurück gegeben. 
     */
    
public function html($text) {
        
$text htmlspecialchars($text);
        
$this -> ersetzen("&lt;""<span style=\"color: green;\">&lt;");
        
$this -> ersetzen("&gt;""&gt;</span>");
        
$this -> codes("/&quot;(.*)&quot;/Usi""<span style=\"color: red;\">&quot;\\1&quot;</span>");
        
$this -> codes("/&lt;!--(.*)--&gt;/Usi""<span style=\"color: blue;\">&lt;!--\\1--&gt;</span>");
        
$this -> ersetzen("\t""&nbsp;&nbsp;&nbsp;&nbsp;");
        
$text str_replace($this -> ersetzen[0], $this -> ersetzen[1], $text);
        
$text preg_replace($this -> codes[0], $this -> codes[1], $text);
        return 
"<code>".nl2br($text)."</code>";
    }

    private function 
ersetzen($name$wert) {
        if (!empty(
$name)) {
                
$anzahl = (count($this -> ersetzenCOUNT_RECURSIVE)/2-1);
                
$this -> ersetzen[0][$anzahl] = $name;
                
$this -> ersetzen[1][$anzahl] = $wert;
            }
    }

    private function 
codes($v1$v2) {
        if (!empty(
$v1) and !empty($v2)) {
                
$anzahl = (count($this -> codesCOUNT_RECURSIVE)/2-1);
                
$this -> codes[0][$anzahl] = $v1;
                
$this -> codes[1][$anzahl] = $v2;
            }
    }
}


Nutzung
 PHP 
1:
2:
3:
4:
5:
<?php
$h 
= new highlight();
echo 
$h -> html(file_get_contents("http://www.php-einfach.de"));
echo 
"<hr />";
echo 
$h -> php(file_get_contents(__FILE__));


Das ganze sieht dann z.B. so aus:


Dateianhang:
 highlight.klasse.php.zip  (1 KB, 520 mal herruntergeladen)



Post wurde schon 3x editiert, das letzte mal am 16.05.2010 um 23:33 von
16.05.2010, 21:20  
stex
Mitglied
Sehr guter User


Dabei seit: 14.04.2009
Herkunft: Hannover
Posts: 650
      Zitat | Bearbeiten

Hast mal ne Demo parat ?


16.05.2010, 21:47 Profil | PM | E-Mail  
B.C.
Mitglied
Sehr guter User


Dabei seit: 04.02.2009
Herkunft: Niedersachsen
Posts: 797
      Zitat | Bearbeiten

Super Ding!
Habs sofort in mein CMS als optionalen Post-Filter eingebaut. Jedoch wird dabei die Einrückung nicht
beachtet, deshalb hab ich bei mir das hinzugefügt:

 PHP 
1:
2:
<?
$this 
-> ersetzen('  ''&nbsp;&nbsp;');


Finde ich dann persönlich besser...




Post wurde schon 1x editiert, das letzte mal am 22.05.2010 um 14:15 von B.C.
22.05.2010, 14:15 Profil | PM | E-Mail  
Gast


      Zitat | Bearbeiten

wenn Tabulatoren verwendet werden gibt es kein Problem aber ok, ich werde es fixen.


22.05.2010, 14:50  
FalkenaugeMihawk
Mitglied
Perfekter User


Dabei seit: 05.06.2010
Herkunft: Schweiz
Posts: 2619
      Zitat | Bearbeiten

Gibt es auch ne Möglichkeit, CSS zu "highlighten"?^^




Post wurde schon 1x editiert, das letzte mal am 27.07.2010 um 02:17 von FalkenaugeMihawk
27.07.2010, 02:17 Profil | PM | E-Mail  
Teralios
Moderator
Perfekter User


Dabei seit: 18.09.2005
Herkunft: Berlin
Posts: 2542
      Zitat | Bearbeiten

http://qbnz.com/highlighter/

Arbeitet, was das angeht bereits besser und kann mehr.

Man muss das Rad ja nicht immer neu erfinden.


27.07.2010, 08:28 Profil | PM | E-Mail  
Seiten (1):  1 
PHP-Support.de » Programmierung » PHP & MySQL » Codeschnipsel » Highlight Klasse   

Neues Thema | Antworten   


Powered by Command Board 1.0 - Beta 2.0 © 2004-08 PHP-Einfach | Impressum | Datenschutz