kostenloser Webspace werbefrei: lima-city


Prüfen ob Datei vorhanden

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ekiam

    Kostenloser Webspace von ekiam

    ekiam hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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.
  4. Autor dieses Themas

    ekiam

    Kostenloser Webspace von ekiam

    ekiam hat kostenlosen Webspace.

    Hallo muellerlukas,

    ja ich weis, verzeih bitte es ist Montag.

    Trozdem Danke

    Ekiam
  5. l*********t

    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.
  6. Autor dieses Themas

    ekiam

    Kostenloser Webspace von ekiam

    ekiam hat kostenlosen Webspace.

    Hallo Zusammen,
    hallo louisflindt,

    vielen Dank für Eure schnelle Hilfe.

    Gruß
    Ekiam
  7. 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.
  8. 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))
    ...
    TRUE oder FALSE
    machst,
    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
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!