gelöst php-Datei auslesen und formatiert ausgeben
Hallo nochmal,
ich hatte vorgehabt, bestimmte php-Codedateien auszulesen und in einem DIV-Container auszugeben, damit die User den Quellcode eines php-Programms einlesen können.
Mit den folgenden Code lese ich die Datei ein:
Um die Kommentare übersichtlich darzustellen, habe ich diese mithilfe von "preg_replace()" ausformatiert:
Und nun zum Problem: Wie bekomme ich die Whitespaces ausgegeben. In der Original-Datei befinden sich sämtliche Einrückungen, die im Browser leider nicht ausgegeben werden.
Mein Versuch:
Geht leider nur für die erste Zeile; der Rest bleibt gleich. Habt ihr viellciht eine Idee?
ich hatte vorgehabt, bestimmte php-Codedateien auszulesen und in einem DIV-Container auszugeben, damit die User den Quellcode eines php-Programms einlesen können.
Mit den folgenden Code lese ich die Datei ein:
01.
$arr_file = file($file);
02.
foreach($arr_file as $line) {
03.
$output .= sprintf(" %s <br />", $line);
04.
}
01.
$line = preg_replace("/^(\/\/)\s(.*)$/U", "<span style=\"color:#003151; font-weight:bold\">\\1 \\2</span>", htmlentities($line));
Mein Versuch:
01.
$line = str_replace(" ", " ", $line);
6 Antworten
- LÖSUNG Arano schreibt am 08.12.2008 um 18:18:02 Uhr
- LÖSUNG joeker schreibt am 09.12.2008 um 15:04:49 Uhr
- LÖSUNG Arano schreibt am 09.12.2008 um 15:56:08 Uhr
- LÖSUNG joeker schreibt am 09.12.2008 um 17:25:01 Uhr
- LÖSUNG joeker schreibt am 09.12.2008 um 17:49:06 Uhr
- LÖSUNG Arano schreibt am 10.12.2008 um 15:10:05 Uhr
- LÖSUNG joeker schreibt am 09.12.2008 um 17:49:06 Uhr
- LÖSUNG joeker schreibt am 09.12.2008 um 17:25:01 Uhr
- LÖSUNG Arano schreibt am 09.12.2008 um 15:56:08 Uhr
- LÖSUNG joeker schreibt am 09.12.2008 um 15:04:49 Uhr
LÖSUNG 08.12.2008 um 18:18 Uhr
Schau dir doch mal PHP-Manual - highlight_string() und PHP-Manual highlight_file() an, die nehmen dir die ganze Arbeit ab :wink:
~Arano
~Arano
LÖSUNG 09.12.2008 um 15:04 Uhr
Ja, ok haste recht.
Aber das löst mein Problem auch nicht, dass die Leerzeichen alle angezeigt werden.
Haste vielleicht da eine Idee?
Aber das löst mein Problem auch nicht, dass die Leerzeichen alle angezeigt werden.
Haste vielleicht da eine Idee?
LÖSUNG 09.12.2008 um 15:56 Uhr
Hm... hab mir mal was gebastelt, und da funktioniert es - wie erwartet.
php.php - auszugebenes PHP index.php - die verarbeitende datei
ausgabe
Wobei man die Datei auch gleich mit highlight_file() einlesen könnte... viel mir aber eben erst ein ^^
~Arano
EDIT:
Auch mit mehreren Leerzeichen hintereinander in dem Echo hat es funktioniert.
php.php - auszugebenes PHP
01.
<?php
02.
// ein kommentarchen
03.
echo 'Ein echo.. HALLOOOO ECHOOOO ;)';
04.
$zahl=145;
05.
if(isset($zahl)&&$zahl==145){
06.
echo 'Oho, ein Hellseher'
07.
}
08.
?>
01.
<?php
02.
03.
$datei=file('./php.php');
04.
$oput='';
05.
foreach($datei as $zeile)
06.
$oput.=$zeile;
07.
08.
highlight_string($oput);
09.
10.
?>
01.
<span style="color: #000000">
02.
<span style="color: #0000BB"><?php
03.
<br /> </span><span style="color: #FF8000">// ein kommentarchen
04.
<br /> </span><span style="color: #007700">echo </span><span style="color: #DD0000">'Ein echo.. HALLOOOO ECHOOOO ;)'</span><span style="color: #007700">;
05.
<br /> </span><span style="color: #0000BB">$zahl</span><span style="color: #007700">=</span><span style="color: #0000BB">145</span><span style="color: #007700">;
06.
<br /> if(isset(</span><span style="color: #0000BB">$zahl</span><span style="color: #007700">)&&</span><span style="color: #0000BB">$zahl</span><span style="color: #007700">==</span><span style="color: #0000BB">145</span><span style="color: #007700">){
07.
08.
<br /> echo </span><span style="color: #DD0000">'Oho, ein Hellseher'
09.
<br /> </span><span style="color: #007700">}
10.
<br /></span><span style="color: #0000BB">?></span>
11.
</span>
~Arano
EDIT:
Auch mit mehreren Leerzeichen hintereinander in dem Echo hat es funktioniert.
LÖSUNG 09.12.2008 um 17:25 Uhr
Achso ist das
Aber wie bekomme ich den Code in einen DIV-Container? Bei mir gibt er mir den Code genau über meine Website aus; also außerhalb des Templates.
Aber wie bekomme ich den Code in einen DIV-Container? Bei mir gibt er mir den Code genau über meine Website aus; also außerhalb des Templates.
LÖSUNG 09.12.2008 um 17:49 Uhr
Ok, hab es selber herrausgefunden. Ich musste nur den zweiten Parameter auf true setzen ;)
Vielen dank dir Arano!
Vielen dank dir Arano!
LÖSUNG 10.12.2008 um 15:10 Uhr
Korrekt !
Gern geschehen
~Arano
Gern geschehen
~Arano
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte