yubb.de-Logo
Tutorials
yubb@yubb
yubbService
Inside yubb

Php Code mit Zeilennummern highlighten

Hier habe ich eine Funktion geschrieben, mit der man Php Code highlighten kann, und die Zeilennummern daneben anzeigen kann.

Die Funktion

PHP-Datei:
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
<?php

function highlight_php($string)
{
  
$Line explode("\n",$string);  //Zeilen einzeln in ein Array Laden

  
for($i=1;$i<=count($Line);$i++)  //Zeilennummern in einer Variablen Speichern
  
{
    
$line .= "&nbsp;".$i."&nbsp;<br>";
  }
    
  
ob_start();  /* Über einen Ausgabepuffer die Ausgabe von highlight_string abfangen und einer Variablen zuweisen */
  
highlight_string($string);
  
$Code=ob_get_contents();
  
ob_end_clean();
  
// Hier wird die Ausgabe in einer header Variable gespeichert
  
$header='<table border="0" cellpadding="0" cellspacing="0" width="95%" style="border-style: solid; border-width:1px; border-color: white black black white">
    <tr>
      <td width="100%" colspan="2"  style="border-style: solid; border-width:1px; border-color: white; background-color: #99ccff; font-family:Arial; color:white; font-weight:bold;">Php-Code:</td>
    </tr>
    <tr>
      <td width="3%" valign="top" style="background-color: #99ccff; border-style: solid; border-width:1px; border-color: white;"><code>'
.$line.'</code></td>
      <td width="97%" valign="top" style="background-color: white;"><div style="white-space: nowrap; overflow: auto;"><code>'
;

// Hier wird der gehighlightete Code und die schließenden Html Tags einer Variablen zugewiesen.
  
$footer=$Code.'</div></code></td>
    </tr>
  </table>'
;

// Hier werden beide Variablen zurückgegeben.
  
return $header.$footer
}

?>


Erläuterung

In der 5. Zeile sehen wir folgendes:
PHP-Datei:
1
2
3
<?php
$Line 
explode("\n",$string);  // Zeilen einzeln in ein Array Laden
?>

Hier wird der Text an Hand der Escape Sequenz für einen Zeilenumbruch in einzelne Zeilen zerlegt.

PHP-Datei:
1
2
3
4
5
6
<?php
for($i=1;$i<=count($Line);$i++)  // Zeilennummern in einer Variablen Speichern
  
{
    
$line .= "&nbsp;".$i."&nbsp;<br>";
  }
?>

In der folgenden For-Schleife werden die Zeilen getrennt mit HTML-Umbrüchen einer Variablen zugewiesen.

PHP-Datei:
1
2
3
4
5
6
<?php
ob_start
();  /* Über einen Ausgabepuffer die Ausgabe von highlight_string abfangen und einer Variablen zuweisen */
  
highlight_string($string);
  
$Code=ob_get_contents();
  
ob_end_clean();
?>

Hier wird nun ein Ausgabepuffer verwendet, damit die Funktion highlight_string() nicht sofort den Php Code ausgibt. Das Ergebnis der highlight_string-Funktion wird der Variablen Code zugewiesen.

PHP-Datei:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// Hier wird die Ausgabe in einer header Variable gespeichert
  
$header='<table border="0" cellpadding="0" cellspacing="0" width="95%" style="border-style: solid; border-width:1px; border-color: white black black white">
    <tr>
      <td width="100%" colspan="2"  style="border-style: solid; border-width:1px; border-color: white; background-color: #99ccff; font-family:Arial; color:white; font-weight:bold;">Php-Code:</td>
    </tr>
    <tr>
      <td width="3%" valign="top" style="background-color: #99ccff; border-style: solid; border-width:1px; border-color: white;"><code>'
.$line.'</code></td>
      <td width="97%" valign="top" style="background-color: white;"><div style="white-space: nowrap; overflow: auto;"><code>'
;

// Hier wird der gehighlightete Code und die schließenden Html Tags einer Variablen zugewiesen.
  
$footer=$Code.'</div></code></td>
    </tr>
  </table>'
;

// Hier werden beide Variablen zurückgegeben.
  
return $header.$footer;
?>


Hier wird nun der HTML-Code für die Ausgabe der Variablen $header zugewiesen. Der Code und die schließenden Tags werden der Variablen $footer zugewiesen. Anschließend werden beide zusammengeführt und zurückgegeben.

Die Benutzung

Die Funktion kann fogenderweise benutzt werden:
PHP-Datei:
1
2
3
<?php
echo highlight_php($highlight);
?>


Es ist auch möglich das Ergebnis einer Variablen zuzuweisen:
PHP-Datei:
1
2
3
<?php
$var
=highlight_php($highlight);
?>




Weiterführende Links:
highlight_string()
ob_start()
ob_get_contents()

Geschrieben von Christian am 20.02.2005 (9635x gelesen)
weiterempfehlen weiterempfehlen   Druckversion Druckversion   kommentieren kommentieren

du hast die funktion nicht selber geschrieben sondern von da geklaut: http://de.php.net/manual/de/function.highlight-string.php
unten bei "support at superhp dot de"
Geschrieben von sdsfdsfdsabla
Ich hab die dort auch gepostet. Die is schon selbst geschrieben. Das is meine E-mail Adresse.
Geschrieben von Christian
schade, dass es im internet explorer nicht funktioniert...
Geschrieben von sili
Wo steht denn der code der gehighlightet werden soll? Beispiel: <?php echo "Hallo"; ?>
Geschrieben von snake.logan