Prüfen ob Datei vorhanden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktivieren
anpassen
anzeige
anzeigen
ausgabe
benutzer
code
datei
datum
domain
ergebnis
funktion
hilfe
manual
nachtrag
pfad
profi
tabelle
url
variablen namen
- 
    
    Hallo Zusammen,
 
 ich benötige Hilfe von Profis.
 
 Ich will mir eine PHP-Tabelle mit Link anzeigen lassen (lese ich aus einer mysql aus). Bei aktivieren des Links soll eine Datei als *.pdf, *.doc, etc. angezeigt werden.
 
 Ich möchte aber vorher überprüfen ob es die Datei (*.pdf, *.doc, etc.) im vordefinierten Pfad vorhanden ist, so das der Benutzer nicht ins leere läuft und eine anzeige erhält.
 
 Nachtrag: es handelt sich um ca. 150 dateien und es werden mehr !!
 
 Wie kann man so etwas bewerkstelligen.
 
 Vielen Dank im voraus
 
 Gruß
 ekiam
 Beitrag zuletzt geändert: 13.3.2017 8:42:30 von ekiam
- 
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden! lima-city: Gratis werbefreier Webspace für deine eigene Homepage 
- 
    
    ekiam schrieb: 
 Hallo Zusammen,
 
 ich benötige Hilfe von Profis.
 
 Ich will mir eine PHP-Tabelle mit Link anzeigen lassen (lese ich aus einer mysql aus). Bei aktivieren des Links soll eine Datei als *.pdf, *.doc, etc. angezeigt werden.
 
 Ich möchte aber vorher überprüfen ob es die Datei (*.pdf, *.doc, etc.) im vordefinierten Pfad vorhanden ist, so das der Benutzer nicht ins leere läuft und eine anzeige erhält.
 
 Nachtrag: es handelt sich um ca. 150 dateien und es werden mehr !!
 
 Wie kann man so etwas bewerkstelligen.
 
 Erster Schritt wäre in der Doku nachzuschauen: https://secure.php.net/manual/de/ref.filesystem.php
 Da findest du dann so Funktionen wie file_exists, is_file, ...
 
 150 sind jetzt erst mal nicht besonders viel. Wenn es allerdings wirklich viel mehr werden macht es Sinn die Infos wegzuspeichern und sporadisch neu zu prüfen (beispielsweise via Cronjob). Somit muss die Prüfung nicht bei jedem Aufruf stattfinden.
- 
    
    Mit file_exists (https://secure.php.net/manual/de/function.file-exists.php) kannst du direkt schauen ob diese Datei vorhanden ist, da spielt die Dateiendung keine Rolle.
 Ich würde dir aber bei großen Dateimengen empfehlen das ganze mittels Crownjob jeden Tag zu überprüfen, sonst könnte die Ladezeit für den Nutzer sehr lange werden, also einfach alle Details mittels PHP beim Erstellen abspeichern lassen.
- 
    
    eine lösung mit cronjob ist erst bei sehr, sehr vielen dateien notwendig. dann empfiehlt es sich aber sowieso, die dateien auf mehrere verzeichnisse zu verteilen.
- 
    
    Hallo
 
 wenn die Datei, die auf Vorhanden-Sein geprüft werden soll
 auf Deinem Webspace / Server leigt, dann ist es relativ einfach
 mit der PHP If Funktion zusammen mit file_exists() Funktion
 
 .... einfach bei der Ausgabe der MySQL Ergebisse diese Prüfung einbauen
 dazu brauchst du nicht den href-Link (URL) als Web-Adresse, sondern die
 lokale Adresse im Webspace (URI) ohne Domain, nur der Pfad und Dateiname
 
 $n=1; // ------ Begin foreach / Loop ------ foreach $ergebnisse as $item) { $link_title = $item->linktitle; $link_href = $item->linkhref; // --- Variablen-Namen anpassen $file_name = str_replace('http://www.deinedomain.de', '', $link_href); // --- Domain-Name aus der Link URL entfernen // --- Lokaler Dateiname beginnt mit / und Pfad zu Datei von Root aus echo " <br /> ------------ ".$n." ------------ \n"; echo " <br /> Name: <strong>".$link_title."</strong> \n"; if (file_exists($file_name)) { // ---- TRUE ----- echo " <br /> OK ... Datei <strong>".$file_name."</strong> existiert ... weiter \n"; } else { // ---- FALSE ----- echo " <br /> Fehler ... Datei <strong>".$file_name."</strong> existiert nicht \n"; } echo " <br />\n"; $n++; } // ------ Ende foreach / Loop ------
 Die Variablen-Namen / Daten-Felder im Ergebnis-Loop und den Domainname
 musst Du natürlich an Deine eigenen Daten anpassen, und was Du als Ausgabe
 bei
 ...if (file_exists($file_name))
 machst,TRUE oder FALSE
 das kannst Du ja auch anpassen.
 
 Bei einer externen / remote Datei
 könnte man eine CURL-Anfrage (oder ähnliches) machen
 und die Header-Daten auf Status-Code (404) etc. auslesen
 
 :=)
 
 Beitrag zuletzt geändert: 20.5.2017 8:38:08 von bgameo
- 
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden! lima-city: Gratis werbefreier Webspace für deine eigene Homepage 

