Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 4577 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Datei zeilenweise auslesen - es passiert aber nichts (3)

Frage von Nagus zum Thema Batch & Shell ...

C und C++
C-sharp soll Datei von PHP speichern (3)

Frage von Yanmai zum Thema C und C ...

VB for Applications
XML Datei auslesen mit Excel (10)

Frage von kaiuwe28 zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Server-Hardware
Bestehendes Raid erweitern um 4 gleiche Platten! (Verständnis Fragen) (12)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...