Durchsuchen von Arrays

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

  • Durchsuchen von Arrays

    Hallo.

    Ich habe in einem Array "$descres" Pfade/Namen von Ordnern und Dateien. In meiner Datenbank habe ich zu manchen Ordnern und Dateien Beschreibungen angelegt.

    Mein Problem war folgendes: Wenn ich eine Datei lösche (via FTP z.B.), dann wird die dazugehörende Beschreibung aus meiner Datenbank ja nicht gelöscht.

    Deshalb schreibe ich gerade ein Script, das die Datensätze aus der Datenbank mit den Werten des Arrays abgleichen soll, um zu überprüfen, ob eine Beschreibung noch "gültig" ist (sprich, ob sie sich auf eine Datei bezieht, die noch existiert).

    Ich habe schon mit Google eine passende Funktion für das Durchsuchen von Arrays gefunden: array_search.

    Mit folgendem Code...

    PHP-Code:
    //Zum Test wird $descres widergegeben
    echo '<pre>';
    print_r($descres);
    echo 
    '</pre><br />';

    $query mysql_query("SELECT `name` FROM `gallery`");

    while (
    $ds mysql_fetch_object($query)) {

      
    $name $ds -> name;
      
      if (
    array_search($name$descres) === false) {
        echo 
    $name ' kommt nicht vor!<br />';
      }
      

    ...erhalte ich folgende Ausgabe:

    Code:
    Array
    (
        [0] => /Mehr Zeug/Noch Mehr/l_1feb414e7817b494c4f11f90e324003d.jpg
    
        [1] => /Mehr Zeug/Noch Mehr/l_8fe7f115765eeabb8e1cf62eb5657cb9.jpg
    
        [2] => /Mehr Zeug/Noch Mehr/l_b25dd800e4a412125d882c91c55417f0.jpg
    
        [3] => /Mehr Zeug/l_21d491d8f1a574dbcd90639214134286.jpg
    
        [4] => /Mehr Zeug/Noch Mehr
    
        [5] => /Musikmesse 2008/l_015184b23aaf436948e7cecfa9b99430.jpg
    
        [6] => /Musikmesse 2008/l_1e60cb465cac45a16a90bfe28c23c689.jpg
    
        [7] => /Musikmesse 2008/l_5f798ee72147d8e83caf3dbcd5f98abd.jpg
    
        [8] => /Musikmesse 2008/l_6da9389b46adf9d645ad1465be736f69.jpg
    
        [9] => /Musikmesse 2008/l_9c9f692457dc838d8a914f5590adf642.jpg
    
        [10] => /Musikmesse 2008/l_b1353ce113c71c3677498f6bd446ec39.jpg
    
        [11] => /Musikmesse 2008/Thumbs.db
    
        [12] => /Mehr Zeug
    
        [13] => /Musikmesse 2008
    
    )
    
    
    /Mehr Zeug/l_d39ae2aee0da427ceeeb955b0b30035a.jpg kommt nicht vor!
    /Musikmesse 2008/l_1e60cb465cac45a16a90bfe28c23c689.jpg kommt nicht vor!
    /Musikmesse 2008 kommt nicht vor!
    /Mehr Zeug kommt nicht vor!
    /Mehr Zeug/Noch Mehr kommt nicht vor!
    /Musikmesse 2008/l_6da9389b46adf9d645ad1465be736f69.jpg kommt nicht vor!
    Wäre toll, wenn jemand den Fehler findet, ich suche schon ewig.

    Vielen Dank, lg,
    Macks
    icedcream.de Webdesign Regensburg

  • #2
    Warum nicht einfach file_exists?

    http://de.php.net/manual/de/function.file-exists.php

    Kommentar


    • #3
      Original geschrieben von h3ll
      Warum nicht einfach file_exists?

      http://de.php.net/manual/de/function.file-exists.php
      Jetzt komm ich mir aber richtig blöd vor!

      Ich hab extra eine rekursive Funktion geschrieben, die Ein Verzeichnis mit allen Unterverzeichnissen ausliest und jetzt ist die Lösung so simple!

      Vielen Dank!
      Es würde mich aber trotzdem noch interessieren, wo der Fehler liegt.

      Lg,
      Macks
      icedcream.de Webdesign Regensburg

      Kommentar


      • #4
        Original geschrieben von icecream
        Es würde mich aber trotzdem noch interessieren, wo der Fehler liegt.
        dann beschreib mal lieber dein Problem.

        Im übrigen: schreib dir liieber ein "Lösch-Script" als ein "abhleich-script".

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          dann beschreib mal lieber dein Problem.
          Wenn du dir den Code ansiehst, dann kannst du aus den Test-Ausgaben schließen, dass die Datensätze, die im Array nicht gefunden werden, gefunden werden müssten.

          Original geschrieben von TobiaZ
          Im übrigen: schreib dir liieber ein "Lösch-Script" als ein "abhleich-script".
          Das wäre natürlich eine Möglichkeit, aber ich verwalte Dateien lieber per FTP.

          Lg,
          Macks
          icedcream.de Webdesign Regensburg

          Kommentar


          • #6
            Also nen Fehler in der Anwendung kann ich nicht erkennen. Es wäre zu vermuten, dass es an den Daten liegt.

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              Also nen Fehler in der Anwendung kann ich nicht erkennen. Es wäre zu vermuten, dass es an den Daten liegt.
              Du siehst doch die Daten oben... die stimmen doch genau überein...

              Lg,
              Macks
              icedcream.de Webdesign Regensburg

              Kommentar


              • #8
                Das würde ich pauschal erstmal nicht behaupten:

                /Mehr Zeug/l_d39ae2aee0da427ceeeb955b0b30035a.jpg kommt nicht vor!
                Steht nicht im Hauptarray drin.

                Der nächste Datensatz, der auch augenscheinlich vorhanden ist, wird von meinem Testscript auch problemlos erkannt:
                PHP-Code:
                <?php

                $descres 
                = array('/Musikmesse 2008/l_1e60cb465cac45a16a90bfe28c23c689.jpg');
                $name =          '/Musikmesse 2008/l_1e60cb465cac45a16a90bfe28c23c689.jpg';

                var_dump(array_search($name,$descres));

                if(
                array_search($name$descres) === false)
                    echo 
                $name ' kommt nicht vor!<br />';

                ?>
                Du siehst also, dass die Implementierung richtig ist. Daher können nur die Daten "fehlerhaft" sein.

                Kommentar


                • #9
                  Original geschrieben von TobiaZ
                  [B]Das würde ich pauschal erstmal nicht behaupten:

                  Steht nicht im Hauptarray drin.
                  Ja, denn die Datei hatte ich gelöscht, um zu sehen ob's funktioniert. Aber die anderen Datensätze stehen doch alle im Array drin.
                  Ich weiß nicht, was an den Daten "fehlerhaft" sein soll?

                  Lg,
                  Macks
                  icedcream.de Webdesign Regensburg

                  Kommentar

                  Lädt...
                  X