Einen Ordner mit PHP auslesen und anzeigen

Momentan fange ich an, mich in JavaScript einzuarbeiten. Ich gehe meist so vor. Ich lege einen Projekt-Ordner an und fülle es nach und nach mit Skripten. Um sie später “zentral” alle beisammen zuhaben, erstelle ich eine zentrale Datei und rufe sie über links auf. Bei wenigen Skripten ist der Aufwand überschaubar, bei mehr als fünf Skripten nervt es aber. Über diese zentrale Datei läßt sich dann ein Skript schneller finden, als zb. erst in der Ordner wechseln, nach Namen suchen, um es anschließend in der URL einzutippen.

Deshalb will ich das ganze automatisiert ablaufen lassen. Kurze Analyse über das was ich nun mache und machen möchte…

Was mache ich?

Ich schreibe viele “Beispiel”-Skripte in einen Ordner. Über einen “zentralen” Skript, das ich händisch erstelle, navigiere ich zu den jeweiligen Skripten.

Was will ich erreichen?

Ich will den Ordner automatisch analysieren lassen und das Ergebnis in dem zentralem Skript anzeigen lassen. Somit brauch ich nur die Skripte im Ordner selbst anzulegen, der gute Rest erledigt sich von selbst.

Da ich Webentwicklung immer unter einem Webserver betreibe, in meinem Fall entwickle ich unter XAMPP, und als Skript-Sprache PHP zu verfügung habe, will ich das ganze schnell mit PHP lösen. PHP stellt mir die Funktion scandir zur Verfügung.

http://php.net/scandir

Mit scandir lese ich einen von mir angegeben Ordner in ein Array aus. Das Array lese ich wiederum in einer Schleife aus und das Ergebnis schreibe ich in ein <a>link</a>-Element. Das Element leite ich in die Ausgabe und die gebe ich schließlich mit echo aus.

Also immer wenn ich nun in den von mir bestimmten Ordner ein Skript ablege, wird es in der zentralen Datei, zb. index.php, als link sofort angezeigt. Banal einfach wie auch praktisch… für mich 🙂

Hier der Code:

<?php

$ordner = '.';
$ausgabe = '';

$ordner_arr = scandir($ordner);

foreach($ordner_arr as $link) {
	$ausgabe .= sprintf('<a href="%s">%s</a><br />', $link, $link);
}

echo $ausgabe;

Wozu heute noch programmieren?

“Es gibt doch schon alles!”

Bestimmt wurde dem ein oder anderem “angehendem” Programmierer diese Frage auch schon gestellt. In dieser Frage und darauf folgenden Aussage steckt meiner Meinung nach, viel “vernichtendes” Potenzial. Es heißt nämlich auch:

“Mensch, hör auf dich weiter zu Entwickeln”.

jEdit als meine Alternative zu Notepad++

In der Arbeit nutze ich überwiegend den Notepad++-Editor. Er ist sehr einfach zu nutzen, läßt sich auf Wunsch mit Plug-Ins und Makros sehr stark erweitern und hat eine sehr praktische Suche das über ganze Ordner nach einem Begriff suchen kann. Vor allem wegen der Suche, mag ich den Notepad++ sehr und habe lange nach einer Alternative suchen müssen, den Notepad++ gibt es nur für Windows.

Das ist für mich ein Nachteil den privat nutze ich Windows nicht. Auch nutze ich kein Linux und bin Windows gar nicht abgeneigt. Privat nutze ich eben kein Windows. Es gibt viele tolle Editoren, die sich unter mehreren Betriebssystemen nutzen lassen, meist sind diese aber auch irgendwie speziell, wie Emacs/Vim oder SublimeText.

Sicherlich keine schlechte Editoren und sind auch sehr mächtig wenn man sie beherrscht. Die Betonung liegt hier auf “sehr mächtig wenn man sie beherrscht”. Um sie zu beherrschen, muss man oft und relativ lange viele Tastaturbefehle auswendig lernen, nur um am Ende so etwas einfaches wie Kopieren eines Textes etwas komplizierter zu machen, was man mit Strg. + C auch erreicht.

Also habe ich mich lange umsehen müssen und meist nutze ich für die Programmierung doch eine IDE, wie zum Beispiel Netbeans. Ein Problem zwang mich jedoch auch unter Windows nach anderen Lösung für den Notepad++ zu suchen. Gelegentlich stürzte der Notepad++ bei mir komplett ab, was erstmals nicht weiter tragisch ist. Nur falls der Editor abstürzt, leert es die gerade geöffnete Datei und überschreibt sie vollständig.

Falls man nicht irgendwo ein Backup parat hat, ist der Inhalt verloren. Zum Beispiel 1500 Zeilen Code, werden dann genau 0 Zeilen Code. Und das ist sehr hässlich, weil es doch schnell und unerwartet passieren kann. Hardware habe ich schon überprüft, jedoch scheint es in Ordnung zu sein. Also muss ein erstmal ein anderer Editor her… und einige habe ich schon versucht.

jEdit

Am interessantestem fand ich jEdit. Erstmal kommt jEdit dem klassischem Editor und Notepad++ für mich am nächstem. Laut Wikipedia ein Editor für Programmierer und es ist für verschiedene Betriebssysteme verfügbar. Ganz klares Plus gegenüber Notepad++. Aber das allein reicht natürlich noch nicht, um als eine Alternative zu gelten. Anforderungen sollten natürlich auch passen, den schließlich sollte man zumindest die gleiche Produktivität aufbringen können, wie mit dem altem Editor.

Unter Notepad++ nutze ich folgende Dinge:

  • Syntax-highlightning
  • globale Suche über Verzeichnisse hinweg
  • whitespace-Ansicht um den Code lesbarer und sauberer zu gestalten
  • Explorer-Plugin für schnelle Navigation im Projekt-Ordner
  • Compare-Plugin für Code vergleiche

Bis auf die globale Suche, glänzen viele andere Editoren mit genau solchen Features, wie auch jEdit.

  • Syntax-highlightning
  • globale Suche über Verzeichnisse hinweg
  • whitespaces mit WhiteSpace-Plugin
  • jDiff-Plugin für Code-Vergleiche

Was etwas gegen jEdit spricht, ist seine Anfangs langsame Geschwindigkeit und relativ häßliches Design. Ich für meinen Geschmack habe den Editor erstmal anpassen müssen. Gute Neuigkeit ist zumindest, der Editor läßt sich sehr stark anpassen und erweitern. Auch hat jEdit einige sehr nette Features zur Code-Navigation gleich mit an Bord, wo ich beim Notepad++ wiederum suchen müsste. Man kann sehr schnell und einfach mehrere Skripte gleichzeitig anzeigen lassen, was unter Notepad++ etwas umständlicher ist.

Mein erstes Fazit

Einiges was Notepad++ standardmäßig liefert, muss unter jEdit über Plugins nachgerüstet werden. Umgekehrt aber genauso. Was das Explorer-Plugin unter Notepad++ macht, bringt jEdit im Grundpaket mit. whitespace-Ansicht muss unter jEdit via Plugin nachgerüstet werden, das wiederum bringt Notepad++ mit. Mir ist wichtig, beide Editoren sind ungefähr gleich und kommen auf einen ähnlichen Funktionsumfang durch Plugins.

Beide Editoren haben somit ihre Pluspunkte. Globale Suche existiert bei beiden Editoren, für mich bietet jEdit sogar die bessere Variante, den während der Suche, wird nicht der ganze Editor blockiert, anders als beim Notepad++. Wiederum ist Notepad++ gefühlt schneller und hat “noch” die bessere Syntax-Hervorhebung.

Wer nach einer Alternative zum Notepad++ sucht, sollte jEdit eine Chance geben. Für meine Arbeit macht es seine Sache prima und lässt vieles nicht so stark vermissen. Ausserdem kann jEdit sehr stark angepasst werden, was bestimmt den einen oder anderen Anwender überzeugen kann.

Ich arbeite vorerst mit jEdit weiter, Beruflich wie Privat und lerne den Editor erstmals kennen und kann dann auch genauer über ihn schreiben.