exists_file()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • exists_file()

    Hallo zusammen, ich arbeite noch nicht all zu lange mit PHP, bin aber total angefressen. Nun, bis jetzt konnte ich noch jedes Problem lösen, wenn auch erst nach langer suche im Net oder nach kurzem Besuch auf php.net Tja, beim folgenden Problem bin ich ratlos, als ob es schwierig wäre die Existenz eines Files (Bild) zu prüfen...


    Aus einer Datei werden mehrer Blöcke gelesen und anhand von explode() gesplittet, was 100% funktioniert. Hier wird dann der Link zum Bild zusammengesetzt....

    if(isset($linkcells[3])){
    $linkbild[$i] = 'subnavi/changes/Links/'.$linkcells[3];
    }

    Später will ich die Existenz des Files (das in der eingelesenen Datei angegebene Bild könnte ja falsch sein) prüfen, und falls es wirlich existiert, etwas ausgeben. Die Abfrage ist folgendermasen:

    if(file_exists($linkbild[$i])){


    ==> Nun, wo kann da der Fehler liegen, wenn ich immer das Resultat FALSE zurück bekomme?

    Feststellung: Wenn ich oben bei der Zusammensetzung des Links zum Bild anstatt von

    'subnavi/changes/Links/'.$linkcells[3];

    'subnavi/changes/Links/test.jpg'; // Testfile

    angebe, dann funktioniert das Script, da ich aber den Link mit der Variable zusammensetzen muss, hilft dies mir nicht weiter.


    Leute, ich schnalls net wiso

    Wäre euch sehr dankbahr, wenn ihr mir meine Dummheit erklären könntet.

    Greez hol.hake

  • #2
    Re: exists_file()

    Feststellung: Wenn ich oben bei der Zusammensetzung des Links zum Bild anstatt von

    'subnavi/changes/Links/'.$linkcells[3];

    'subnavi/changes/Links/test.jpg'; // Testfile

    angebe, dann funktioniert das Script, da ich aber den Link mit der Variable zusammensetzen muss, hilft dies mir nicht weiter.
    was steht in $linkbild[$i] bzw. $linkcells[3]? echo ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      in $linkcells[3] ist der Name eines Bildes, welches im Ordner subnavi/changes/Links/ existiert.

      und in $linkbild[$i] ist der Dateilink... wie er sein sollte!
      Zuletzt geändert von hol.hake; 04.04.2006, 23:37.

      Kommentar


      • #4
        das hast du (wie) überprüft? laß dir die inhalte doch mal ausgeben - ich habe deinem ersten post schon entnehmen können, was du vermutest, daß da drin sein könnte.

        echo
        error_reporting(E_ALL)
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          error_reporting(E_ALL) und echo...

          In der Variable steht wirklich der richtige Pfad der Datei, das ist nicht nur eine Vermutung. Und wenn ich "error_reporting(E_ALL)" ausführe, kommen auch keine Fehlermeldungen... eigenartiger weise!

          Da in der Varieble, die ich mit file_exists() prüfe, der richtige Pfad vorhanden ist, verstehe ich nicht, wiso dass die if()- Abfrage trotzdem negativ ausfällt. Wenn ich die Variable ausgebe, und den Pfad zur Datei im Browser anzeigen lasse, wird die Datei angezeigt. Also kann es auch nicht daran liegen, dass ich den Pfad fehlerhaft zusammensetze.

          Kommentar


          • #6
            Quelltext

            Das ist der Code der ganzen Datei, welche unter anderem prüft, ob das Bild vorhanden ist, und wenn ja, es anzeigt. Sonst soll eine leere Zelle geschrieben werden (was die ganze Zeit zutrifft)

            PHP-Code:
            <html>
            <body>
            <table>

            <?php
            $linksource 
            "subnavi/changes/Links.txt";            // Datei mit den Inhalten:    Link; Linkname; Bemerkung; Bildname (Bild zum Link)
            $dir "subnavi/changes/Links/";
            $linkstring file_get_contents($linksource);        // Einlesen der Datei in $linkstring
            $linkrow explode("\n"$linkstring);                // Aufteilen von verschiedenen Links...
            for($i 0$i count($linkrow) - 1$i++){
                
            $linkcells explode("\t"$linkrow[$i]);        // Aufteilen der verschiedenen Eigenschaften (Link; Linkname; Bemerkung; Bild)
                
            $link[$i] = $linkcells[0];                        // Hier werden die verschiedenen Eigenschaften in die Arrays geschrieben...
                
            $linkname[$i] = $linkcells[1];
                
            $linkbemerkung[$i] = $linkcells[2];
                
            $linkbild[$i] = $dir.$linkcells[3];                // Hier wird der Link zum Bild geschrieben
            }
            for(
            $i 0$i count($link); $i++){
                echo
            '    <tr>
                    <td width="140">
                        <a href="'
            .$link[$i].'">'.$linkname[$i].'</a>
                    </td>
                    <td width="20">
                    </td>
                    <td width="300">
                        '
            .$linkbemerkung[$i].'
                    </td>
                    <td width="20">
                    </td>
                    <td width="100">
            '
            ;
                if(
            file_exists($linkbild[$i])){                        // Prüft die Existenz des Bildes
                    
            echo                                            // Wenn es existiert, wird das Bild eingeblended
            '            <img src="'.$linkbild[$i].'" width="100">
                    </td>
            '
            ;
                }else echo                                            
            // Wenn nicht, wird eine leere Zelle angezeigt
            '        </td>
            '
            ;
                echo
            '    </tr>
                <tr>
                    <td colspan="5" height="20">
                    </td>
                </tr>
            '
            ;
            }
            ?>

            </table>
            </body>
            </html>
            Zuletzt geändert von hol.hake; 05.04.2006, 19:16.

            Kommentar


            • #7
              geh vielleicht mal mit foreach statt mit for durch die arrays ?!?
              2 meiner pages:

              Kommentar


              • #8
                Hmmm...

                Naja, war nicht einfach, den Code so umzuschreiben, dass ich die Arrays anhand einer foreach zuweisen konnte... habe es (glaube ich) hingebracht...
                Resultat: Das selbe;o(

                Naja... versuche mein Problem wohl auf eine andere Art zu lösen.

                Danke trotzdem für den Rat.

                Gruss hol.hake

                Kommentar


                • #9
                  Simpel: in $linkcells[3] steht was stehen will, aber nicht der
                  wirkliche exakte genaue case-präzise Dateiname inkl. extension.
                  vielleicht hat es Leerzeichen um den Dateinamen, zur besseren Lesbarkeit
                  (wie ja auch im Kommentar im skript).
                  Vielleicht ist dein compi-Dateisystem case-sensitive.
                  Villeicht wäre ein echo "#${linkcells[3]}#<br>"; angezeigt.

                  Fällt mir noch auf, dass Du auf \t splittest aber im Kommentar stehen ; als
                  Trennzeichen.

                  Und im ersten Post schreibst Du
                  if(isset($linkcells[3])){
                  $linkbild[$i] = 'subnavi/changes/Links/'.$linkcells[3];

                  Der explode kann auch ein Arrayelement geben, wenn der Bildname leer ist, solange
                  genug Trennzeichen vorhanden sind, und im etwa 4.post mit dem PHP Skript ist
                  kein isset mehr vorhanden, also hast Du ZWEI skripte.

                  Jetzt hast Du genug Punkte zum abchecken.
                  Zuletzt geändert von miximaxi; 09.04.2006, 02:09.

                  Kommentar

                  Lädt...
                  X