Hallo zusammen,
ich brauche Eure Hilfe. Ich möchte Codefragmente bzw. Scriptabschnitte formatiert auf einer Seite ausgeben. Das funktioniert soweit auch recht gut, aber lange Codezeilen werden umgebrochen und dann funktioniert die Zeilennummerierung nicht mehr. Gibt es eine Möglichkeit ohne iframe einen horizontalen und vertikalen Scrollbalken zuschaffen?
Hier mal der Code:
PHP-Code:
if (isset($_GET['action']) && $_GET['action'] == "save") {
if (!empty($_POST['code'])) {
// *************************************************************************
// Auf Codespezifische TAGs prüfen
// *************************************************************************
// ***** PHP *****
// wenn Anfangstag fehlt
$code = trim($_POST['code']);
if (!ereg("^[<?]", $code)) {
$string = "<?php\n";
$string .= $code;
}
// wenn Endtag fehlt
if (!ereg("[?>]$", $code)) {
$string = $code;
$string .= "\n?>";
}
// wenn beide Tags fehlen
if (!ereg("^[<?]", $code) && !ereg("[?>]$", $code)) {
$string = "<?php\n";
$string .= $code;
$string .= "\n?>";
}
// wenn beide Tags vorhanden sind
if (eregi("^[<?]", $code) && ereg("[?>]$", $code)) {
$string = $code;
}
// überflüssige Slashes und Leerzeichen entfernen
$string = stripslashes(trim($string));
// String anhand vom Zeilenumbruch trennen
$code = explode("\n", $string);
// Zeilen zählen
$anz = count($code);
// Array der Zeilen erstellen
$rows = array();
// Codezeilen zusammensetzen
$data = "";
for ($i=0; $i <= count($code); $i++) {
if ($code[$i] != "") {
// nächste Codezeile verketten
$data .= $code[$i]."\n";
// Zeilenanzahl aufsummieren
$rows[] = $i;
}
}
// Zeilennummern ausgeben
echo "<div id=\"row\">\n";
for ($i=1; $i < $anz; $i++) {
echo $rows[$i].".<br />";
}
echo $anz.".";
echo "</div>\n";
// Codezeilen ausgeben
echo "<div id=\"code\">\n";
echo " <p>".highlight_string($data, true)."</p>\n";
echo "</div>\n";
} else {
echo "<p>kein Code</p>\n";
}
} else {
echo "<form action=\"".$PHP_SELF."?action=save\" method=\"post\">\n";
echo " <textarea name=\"code\" cols=\"100\" rows=\"35\"></textarea>\n";
echo " <input type=\"submit\" name=\"submit\" value=\"speichern\">\n";
echo "<form>\n";
}
und die CSS-File
Code:
#row, #code {float:left; font-family:courier new; font-size:1.2em;}
#row {padding:0px 10px 0 0; border-right:1px solid #999; color:#999; text-align:right;}
#code {float:left; padding:0 0 0 10px; text-align:left;}