Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

php-Datei auslesen und formatiert ausgeben

Frage Entwicklung PHP

Mitglied: joeker

joeker (Level 1) - Jetzt verbinden

08.12.2008, aktualisiert 10.12.2008, 4516 Aufrufe, 6 Kommentare

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:

01.
$arr_file = file($file); 
02.
foreach($arr_file as $line)	{ 
03.
    $output .= sprintf(" %s <br />", $line); 
04.
}
Um die Kommentare übersichtlich darzustellen, habe ich diese mithilfe von "preg_replace()" ausformatiert:

01.
$line = preg_replace("/^(\/\/)\s(.*)$/U", "<span style=\"color:#003151; font-weight:bold\">\\1 \\2</span>", htmlentities($line));
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:

01.
$line = str_replace(" ", "&nbsp;", $line);
Geht leider nur für die erste Zeile; der Rest bleibt gleich. Habt ihr viellciht eine Idee?
Mitglied: Arano
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
Bitte warten ..
Mitglied: joeker
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?
Bitte warten ..
Mitglied: Arano
09.12.2008 um 15:56 Uhr
Hm... hab mir mal was gebastelt, und da funktioniert es - wie erwartet.

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.
?>
index.php - die verarbeitende datei
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.
?>
ausgabe
01.
<span style="color: #000000"> 
02.
<span style="color: #0000BB">&lt;?php 
03.
<br />&nbsp;</span><span style="color: #FF8000">//&nbsp;ein&nbsp;kommentarchen 
04.
<br />&nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">'Ein&nbsp;echo..&nbsp;HALLOOOO&nbsp;ECHOOOO&nbsp;;)'</span><span style="color: #007700">; 
05.
<br />&nbsp;</span><span style="color: #0000BB">$zahl</span><span style="color: #007700">=</span><span style="color: #0000BB">145</span><span style="color: #007700">; 
06.
<br />&nbsp;if(isset(</span><span style="color: #0000BB">$zahl</span><span style="color: #007700">)&amp;&amp;</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 />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'Oho,&nbsp;ein&nbsp;Hellseher' 
09.
<br />&nbsp;</span><span style="color: #007700">} 
10.
<br /></span><span style="color: #0000BB">?&gt;</span> 
11.
</span>
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.
Bitte warten ..
Mitglied: joeker
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.
Bitte warten ..
Mitglied: joeker
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!
Bitte warten ..
Mitglied: Arano
10.12.2008 um 15:10 Uhr
Korrekt !
Gern geschehen

~Arano
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Microsoft Office
Excel Dateien durchsuchen und Werte einzeln in neue Excel Datei auslesen (1)

Frage von krischanii zum Thema Microsoft Office ...

Batch & Shell
gelöst Variable aus ini Datei auslesen und weiterverwenden (17)

Frage von n0cturne zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH ini Datei Datei auslesen (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...