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