• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[PHP] Dropbox Ordnerstruktur mit PHP in HTML Datei ausgeben?

apple_juice

Aargauer Weinapfel
Registriert
16.10.10
Beiträge
746
Liebes Forum,
ich habe leider überhaupt keine Ahnung von PHP, aber hoffe, dass ihr mir trotzdem helfen könnt.

Ein Bekannter hat mich auf die Idee gebracht, mit einem kleinen Script die Struktur aus einem meiner Dropbox Ordner auszulesen und in einer Textdatei zu speichern. Das hat folgenden Sinn: Wir arbeiten an einem Schulprojekt mit mehreren Leuten und haben einen Dropbox Ordner für die Mitarbeiter freigegeben. Mit dieser Übersicht, die erzeugt werden soll, kann man ziemlich leicht und schnell erkennen, was genau schon in welchem Ordner liegt.

Das sieht dann ungefähr so aus:

"Ordner1:
Dokument1
Bild1
Text1

Ordner2:
Dokument2
Bild2
Text2 .... "

Bisher habe ich das mit einem Skript gelöst, es sah so aus:

Code:
[COLOR=#333233]cd /Users/meinname/Dropbox/gemeinsamerOrdner[/COLOR][COLOR=#333233]
[/COLOR]
[COLOR=#333233]ls */ > /Users/meinname/Dropbox/Public/Ordner/dateien_übersicht.txt[/COLOR]

So wurde in einer Textdatei, die dann in meinem Public Ordner lag, ausgegeben, was der Inhalt des Ordners "gemeinsamerOrdner" war.
Wenn ich dann den Link zur Datei aus meinem Public Ordner an die anderen Mitarbeitenden verschickt habe, hatten sie auch den Überblick über die vorhandenen Dateien.

Ich habe den Code oben also immer ins Terminal eingeben, was den Nachteil hatte, dass es "per Hand" geschehen musste und nicht automatisch.

Daher nun meine Frage: Ist es möglich, so etwas mit PHP zu lösen?
Ziel ist es also, eine Datei/ein HTML-Dokument zu erstellen, das auf einem Server liegt und so auch für die anderen zugänglich ist, sodass sie den Überblick über den Ordnerinhalt haben (und zwar eben automatisch, also sobald eine Datei hinzugefügt wird, soll sich das Dokument verändern).

Vielen Dank für Hilfe!
apple_juice
 
  • Like
Reaktionen: Dinofelis

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Hallo apple_juice!

Die Frage ist, ob das so sinnvoll bzw. einfacher ist.
Das Problem ist, dass Deine PHP Datei auf einem Webserver laufen muss (das kann auch der integrierte Apache-Server sein).
Das bedeutet, dass Du nicht so leicht an Dein restliches Dateisystem ran kommst.

Ich würde das in dem Fall mit einem Applescirpt lösen, welches Du als Programm sichern und dann im Dock ablegen kannst.
Der Terminal-Befehl, den Du ja schon da hast, wird ausgeführt und macht alles, was Du möchtest.

Das Script selber wäre nur eine Zeile lang und sähe so aus:

Code:
do shell script "ls ~/Dropbox/gemeinsamerOrdner > ~/Dropbox/Public/Ordner/dateien_übersicht.txt"
Das Tilde (~) steht für /Users/meinname und macht solche Shell-Scripte kompatibler.
Wenn Du diesen Buchstaben verwendest ( ⌥ + n ), kannst Du das Programm an jeden anderen Mac Nutzer weiter geben.

Der AppleScript editor liegt im Dienstprogramme-Ordner.
Dort musst Du nur diese Zeile rein kopieren und dann Ablage → Sichern Unter… dann als Format "Programm" wählen und im Programme Ordner ablegen.
Wenn Du Dir das Teil ins Dock ziehst, kannst Du die Datei innerhalb von Sekunden mit einem einzigen Klick erstellen.

Kannst mir 'ne PN schicken, wenn Du noch mehr Hilfe brauchst.


Viel Erfolg & Grüße :)
 
  • Like
Reaktionen: apple_juice

apple_juice

Aargauer Weinapfel
Registriert
16.10.10
Beiträge
746
Vielen Dank für die Hilfe und super Erklärung, Mini-Leopard! :)
Das hat mich schonmal sehr viel weitergebracht, auf die Idee mit dem Applescript bin ich gar nicht gekommen, aber es ist auch eine sehr gute Lösung und es spart auf jeden Fall viel Zeit und Aufwand. Danke!

Ein kleines Problem habe ich allerdings dennoch: Ich habe den Code genauso kopiert, ein Programm erstellt und so weiter, klappt tadellos, allerdings zeigt mir die Textdatei aus meinem Publicordner leider nur die jeweiligen Ordnernamen, die sich als Unterordner in "gemeinsamerOrdner" befinden, aber nicht deren Inhalt an.
Als ich vorher das Script "von Hand" ausgeführt habe, war das aber der Fall und es soll am besten auch nach wie vor so sein, weil es um den Inhalt der jeweiligen Unterornder geht. Außerdem wird auch das Wort "Icon" angezeigt, selbst wenn der gemeinsame Ordner absolut leer ist.
Wie kann ich das lösen?

Hoffentlich geht das auch ganz einfach, würde mich auf sehr freuen.
Danke und Grüße! :)
 

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Ööhhmm… Ja, mein Fehler, sorry.
Hatte nicht ganz gewusst / verstanden, dass Du rekursiv die Inhalte ausgeben willst.
Ich hab mir da noch mal 'n paar Gedanken gemacht.

Das hier war mein erster Einfall:
Code:
do shell script "ls */ ~/Dropbox/gemeinsamerOrdner > ~/Dropbox/Public/Ordner/dateien_übersicht.txt"

Und da ist mir aufgefallen, dass damit nicht nur der Inhalt von Dropbox ausgegeben wird, sondern auch von dem Ordner, wo die Textdatei hin gespeichert wird. Den Fehler durchblicke ich nicht so ganz.

Aber hier hab ich den Fix zu der ganzen Sache:
Code:
do shell script "cd ~/Dropbox/gemeinsamerOrdner && ls */ > ~/Dropbox/Public/Ordner/dateien_übersicht.txt"


Ich hoffe, dass das so funktioniert, bzw. das hilft.
 

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Ja super, freut mich, dass ich helfen konnte!
Und wenn Du das Icon von dem erstellten Programm (dann wahrscheinlich auch im Dock(?)) ändern möchtest, machst Du einen Rechtsklick auf das Programm → Packetinhalte anzeigen → Contents → Resources, da findest Du eine Datei mit dem Namen "appket.icns". Diese kannst Du dann nach Belieben mit einem anderen Icon ersetzen.

Alles in Allem freue ich mich, dass ich helfen konnte!
Grüße
 

Dinofelis

Gast
Du kannst Shell-Scripts auch direkt "doppelklickbar" machen. Das spart den Umweg über AppleScript.


  1. Die beiden Kommando-Zeilen mit TextEdit als reine Textdatei (.txt) sichern
  2. Das Suffix umbenennen von .txt in .command
  3. Mit Terminal dieser Kommando-Datei Ausführungsrechte geben (chmod 755 /Pfad/Dateiname)
 
  • Like
Reaktionen: apple_juice

Dinofelis

Gast
Und wenn du diese Kommandodatei z.B. in Systemeinstellungen - Benutzer - Startobjekte lädst, dann wird die Dropbox-Übersicht bei jedem Login aktualisiert. :)
 

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Ist ja auf keinen Fall besser, als im Vergleich zu AppleScript.
Geht genau so gut.

Nur hat er das AppleScript Programm jetzt schon.
Und auch das kann man in den Startobjekten eintragen.
 

Dinofelis

Gast
Ist ja auf keinen Fall besser, als im Vergleich zu AppleScript.

Doch natürlich. Wozu ein Shell-Script in AppleScript einbinden, wenn es auch direkt und sehr viel weniger umständlich geht?

Und man kann mit Shell-Scripts sehr schöne Dinge machen, die mit AppleScript überhaupt nicht gehen.

Ich war mal ein großer Fan von AppleScript, genau genommen seit 1987 mit den ersten Anfängen bei HyperTalk.

Seit Tiger habe ich es aber komplett aufgegeben, weil es ein einziger Krampf wurde. Ich kenne keine Scriptsprache, die so unlogisch aufgebaut, schlecht dokumentiert, und fehlerhaft ist wie AppleScript. Hat sich da etwas in den letzten vier Jahren verbessert?

Nur hat er das AppleScript Programm jetzt schon.

LOL. Na und? Dann löscht er es halt wieder. :D


EDIT:

Habe gerade die AppleScript Release Notes seit Tiger durchgelesen. Es hat sich schon einiges verbessert, ich denke trotzdem, dass man AppleScript vermeiden sollte, wenn sich etwas auch anders machen lässt.

Im Übrigen kann man ja schon recht lange AppleScript in Shell-Scripts einbinden, d.h. sollte man es benötigen, geht es auch so herum.

Und diese Neuerung ist nett:

Command Line Support

AppleScript now allows # as a comment-to-end-of-line token, in addition to --. This means that you can make a plain text AppleScript script into a Unix executable by beginning it with the line #!/usr/bin/osascript and giving it execute permission. For details ofosascript usage, including how to access command line arguments from the script, see the osascript(1) man page. [2468788]
There is a command-line tool to display compiled scripts as text, /usr/bin/osadecompile. [4501123]
osascript(1) and osacompile(1) now correctly handle text scripts
encoded as UTF-8, in addition to UTF-16 and the primary encoding. If a script is neither UTF-8 nor UTF-16, it is presumed to be encoded using the primary encoding.
 
Zuletzt bearbeitet von einem Moderator:

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Hallo apple_juice!Die Frage ist, ob das so sinnvoll bzw. einfacher ist.Das Problem ist, dass Deine PHP Datei auf einem Webserver laufen muss (das kann auch der integrierte Apache-Server sein).Das bedeutet, dass Du nicht so leicht an Dein restliches Dateisystem ran kommst.…
Hi, du brauchst nur den interpreter und kannst php-dateien auch ohne webserver für programmierte aufgaben nutzen. Den interpreter kann man sich runterladen. Ein server ist auch erstmal nackt und der sysadmin entscheidet durch installation der entsprechenden pakete welche sprachen der server können soll.
 

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Hey hillepille!
Ich kenne solche Interpreter nicht... Hast Du da mal 'n Beispiel? Würde mich jetzt schon interessieren :)
Der (in jeden Mac integrierte) Apache Webserver kann von Hause aus sehr sehr viel. Unter anderem eben auch PHP.
 

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Hi, der interpreter ist z.b. eine ausführbare Datei, die deinen PHP-Code nimmt und in HTML übersetzt. Apache kann von Haus aus jein PHP, es sei denn es ist eingebunden. Und dafür brauchst du einen PHP-Interpreter. Du kannst dir php ja auch losgelöst von apache laden, dann hast du den Interpreter und kannst Scripte lokal damit aufrufen. Ich hoffe das hilft dir etwas weiter, ansonsten mal danach googeln.