php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.07.2008, 20:50  
Neuer Benutzer
 
Registriert seit: 09.07.2008
Beiträge: 8
Dickus befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Verzeichnis einlesen und Datei suchen

Hallo Leute,
wie kann ich ein Verzeichnis nach einem bestimmten Dateinamen durchsuchen
lassen?
Das Verzeichnis ist auf einem Server und der Dateiname kommt aus einer
MySQL-Datenbank.

Folgender Hintergrund:
Ich bin Ausbilder und arbeite viel mit elektronischen Materialien. Meine
Kollegen haben auch etliche Dokumente, Grafiken und Folien.
Nun habe ich eine Seite (htaccess-Schutz) gebastelt, wo jeder Dozent
nach Eingabe seines Namens auch eine Datei hochladen kann.
Nach dem Upload wandert der Dozentenname und der Dateiname in eine
MySQL-Datenbank.
Eine Downloadseite liest dann die MySQL-Datenbank aus und zeigt an,
welche Dozent welche Daten hochgeladen hat. Hinter jedem Dateinamen
ist dann ein Download-Link.
Bis hier keine große Sache und funktioniert einwandfrei.

Was aber ist, wenn ein Dozent möchte, dass Daten gelöscht werden?
Als Admin würde ich die Datei von Hand auf dem Server löschen.
Aber in der DB steht der Eintrag dann natürlich immer noch.

Nun kam ich auf folgende Idee:
Bevor die Download-Seite generiert wird, muss jeder Eintrag bezüglich des
Dateinamens auf Vorhandensein geprüft werden. Steht in der DB z.B. der
Dateiname 'ssl.ppt' und ist diese Datei auf dem Server gar nicht vorhanden,
dann darf dieser Eintrag nicht angezeigt werden. Zudem muss er dann
natürlich auch gelöscht werden.
Das ist aber keine Schwierigkeit.

Ich weiss nur nicht, wie ich einen Dateinamen aus der DB mit den Dateien
im Serververzeichnis vergleiche.
Wie lese ich ein Verzeichnis ein?

THX
Dickus
Dickus ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.07.2008, 20:54  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Das würde ich ganz anders anfassen. Wenn ein Dozent eine Datei gelöscht haben will. Dann schreibe doch ein kleines Skript dass dir diese Arbeit abnimmt. Entweder darf der Dozent selbst die Datei löschen oder du machst es eben.

Das Skript löscht den Eintrag in der Datenbank UND löscht zusätzlich die Datei auf dem Server. Das geht alles recht einfach und sollte doch dein Problem beheben wenn ich dich richtig verstanden habe.
Flor1an ist offline  
Alt 10.07.2008, 20:54  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

glob
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 10.07.2008, 21:00  
Neuer Benutzer
 
Registriert seit: 09.07.2008
Beiträge: 8
Dickus befindet sich auf einem aufstrebenden Ast
Standard

Hi Flor1an,
das setzt dann aber schon eine Dozenten-Liste voraus.
Ich wollte eigentlich keine 'Benutzer-Konten' anlegen.
Dass sich jeder mit Namen und Passwort einloggt, ist
(man glaubt es kaum) für einige Kollegen schon zu viel.


Mit so einem System wäre das Problem in der Tat, so wie Du schreibst,
aus der Welt geschaffen.

Der Hinweis von nikosch77-new scheint aber auch nicht ohne zu sein.
Werde mir das gleich mal reinziehen.

Vielen Dank Euch Beiden
Dickus
Dickus ist offline  
Alt 10.07.2008, 21:03  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Und wenn du das Skript nur für dich zugänglich machst? Das geht ja ganz einfach mit ner .htaccess Datei. Dann würdest du auch nicht immer extra die Datei vom Server löschen müssen.
Flor1an ist offline  
Alt 10.07.2008, 21:06  
Neuer Benutzer
 
Registriert seit: 09.07.2008
Beiträge: 8
Dickus befindet sich auf einem aufstrebenden Ast
Standard

Moinsen,
ich glaub' das hat sich gerade erledigt.
Die Funktion glob() macht genau das, was ich gesucht habe.
Das ist echt ziemlich abgefahren. Kommt davon, wenn man zwar mit
PHP und MySQL aber so gut wie nie mit Dateien unter PHP arbeitet. *g*

Dickus
Dickus ist offline  
Alt 11.07.2008, 06:10  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Dickus Beitrag anzeigen
Ich weiss nur nicht, wie ich einen Dateinamen aus der DB mit den Dateien
im Serververzeichnis vergleiche.
Wie lese ich ein Verzeichnis ein?
Warum eigentlich, du kannst doch mit file_exists pruefen ob die Datei ueberhaupt existiert, oder nimmst du das Verzeichnis als Grundlage und schaust ob die DB konsistent ist?

Ich markier den Thread mal als markiert.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Alt 11.07.2008, 08:34  
Neuer Benutzer
 
Registriert seit: 09.07.2008
Beiträge: 8
Dickus befindet sich auf einem aufstrebenden Ast
Standard

Hi Chriz,
genau so ist es. Ich prüfe die Konsistenz der DB anhand der verfügbaren
Dateien aus dem Serververzeichnis.

Habe es aber gestern mit der glob() Funktion hinbekommen.

Falls eine Datei gelöscht wurde und dann die Download-Übersicht
aufgerufen wird, prüft das Skript vor der Ausgabe, ob der jeweilige
Dateiname in der Datenbank auch wirklich auf dem Server existiert.
Sollte die Datei nicht vorhanden sein, wird die gelöschte Datei nicht
nur nicht ausgegeben, sondern der Eintrag in der Datenbank über eine
ID auch gelöscht.

Vielen Dank
Dickus
Dickus ist offline  
Alt 11.07.2008, 11:08  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Verstehe ich nicht wieso du das so rum machst. Eigentlich gehört es sich anders rum. Das du von vorne rein checkst dass alles konsistent bleibt. Warum umständlich eine Datei per FTP löschen, dann das PHP Skript im live Betrieb die Konsistenz zur Datenbank wiederherstellen??? Sinnvoller wäre es direkt ein Skript zu benutzen dass die die Datei + den DB Eintrag löschst. Somit hast du nie Probleme mit inkonsistenten Daten. Und auslesen würde ich die Dateien anhand der Datenbank. Somit hast du keinen einzigen Filezugriff beim generieren der Liste.

Angenommen du hast da ein paar hundert Dateien in der Liste, dann müsstest du bei jedem Aufruf der Liste alle Dateien prüfen ob sie in der Datenbank existieren ... was glaubst du wie viel Performance das kostet so viele Filezugriffe zu machen??
Flor1an ist offline  
Alt 11.07.2008, 11:14  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Ich markier den Thread mal als markiert.
Ähm okeeee....
cycap ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Output einer Datei in einen String speichern christoph_999 PHP Tipps 2008 5 24.07.2008 18:11
[Erledigt] verzeichnis mit rename ändern klappt nicht! litterauspirna PHP Tipps 2008 12 23.07.2008 15:03
[Erledigt] Textarea: Einlesen - Problem.. Softyx PHP Tipps 2008 2 05.07.2008 12:49
[Erledigt] Hochgeladene Datei wird doppelt abgelegt thecracked PHP Tipps 2008 3 01.07.2008 16:31
[Erledigt] Datei - Byte an Offset überschreiben Griffith PHP Tipps 2008 2 26.05.2008 06:54
php datei mit readfile(); einlesen PHP-Fortgeschrittene 7 24.01.2006 19:23
csv datei einlesen Promaetheus PHP Tipps 2007 11 23.12.2005 10:49
Datei aus anderem Verzeichnis laden klappt nicht.. PHP Tipps 2005-2 0 13.10.2005 00:36
File Upload - Verzeichnis der Source Datei bekommen yoshy PHP Tipps 2005-2 2 06.09.2005 01:33
txt datei in verzeichnis erstellen! PHP Tipps 2005-2 6 03.08.2005 17:47
Mehrere Txt-Dateien aus verzeichnis einlesen und .... PHP Tipps 2005 13 11.04.2005 23:45
Verzeichnis ab n-ter Datei einlesen PHP Tipps 2005 2 06.04.2005 11:00
Verzeichnis einlesen mit nachträglichem auswerten PHP Tipps 2005 6 17.01.2005 15:41
UniCode Datei einlesen! PHP Tipps 2004 0 23.08.2004 17:19
Prüfen, ob Datei in Verzeichnis geschrieben werden darf inu PHP Tipps 2004 4 09.07.2004 19:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php datei suchen, php dateien suchen, php datei in ordner suchen, php verzeichnis nach datei durchsuchen, php-script verzeichnis nach datei durchsuchen, php datei finden, php verzeinis eilesen und datei als download stellen, php verzeichniss einlesen download generieren, php suchen nach datei, php verzeichnisse einlesen, php verzeichnis einlesen und dateien löschen, php verzeichnis nach vorhandensein von datei diurchsuchen, php dateinamen suchen, griffith ordner durchsuchen, php ordner nach filename suchen, suchen.php download, php ordner nach bestimmten datei, mit php nach dateiname durchsuchen, php datei hochladen verzeichnis der sourcedatei, script zum suchen bestimmter dateinamen in php

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum