unlink mit Platzhalter ?

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

  • unlink mit Platzhalter ?

    Hallo,

    ich möchte Dateien in einem Verzeichnis löschen die mit einem bestimmten Zeichenfolge beginnen.

    Also zb. 050912*


    aber unlink bring immer eine Fehlermeldung das die Datei nicht vorhanden ist!

    Anscheinend versteht unlink den 'Platzhalter' * nicht und versucht die Datei 050912* zu löschen welche natürlich nicht vorhanden ist....

    Jemand eine Lösung für das Löschen von mehreren Dateien auf einmal mit Platzhalter * ?

  • #2
    Du könntest das Verzeichnis einlesen und während des einlesen mittels strpos oder ähnlichem schauen ob die Datei ins Raster passt oder nicht.

    Anhand dieser Information, die in einem Array liegen sollten, kannst du dann die Dateien löschen.

    Kommentar


    • #3
      mit äußerster vorsicht zu genießen.

      PHP-Code:
      $files glob('foo.*');
      foreach (
      $files as $v)
         
      unlink($v); 

      Kommentar


      • #4
        @penizillin

        $files = glob('foo.*');
        foreach ($files as $v)
        unlink($v);


        wobei foo für den Dateinamen steht oder wie ?

        Also alle Dateien mit 05*.* -> $files = glob('05*')

        ???

        Also so hab ich es probiert aber leider ging nicht....

        Kommentar


        • #5
          aber leider ging nicht....
          wann lernst du endlich, das problem selbst zu erfassen? fehlermeldung? $files mal ausgeben lassen? den pfad übrprüft?

          Kommentar


          • #6
            @penizillin

            Ja, wie soll ich das sagen ?
            Ich bin ja Fachinformatiker und nicht grade auf den Kopf gefallen.....

            Aber wo es keine Fehlermeldung gibt.......gibts halt keine!

            Also das Script tut so als ob aber die Dateien sind dennoch da!

            Ich weis wie man Fehler eingrenzen kann, ich gebe die Pfade aus, schaue ob die ok sind. Lasse genau diese prüfen ob die auch existieren, usw...
            Ich gebe an jedem Schritt Ausgaben aus um zu sehen bis wo es kommt usw....

            In VB ist es zwar leichter, ich habe ja das Debug-Fenster aber dennoch, auf den Kopf gefallen denke ich nicht.......

            Aber, ich habe erst vor 4 1/2 Monaten überhaupt mit PHP angefangen....da muss man sich erst 'umgewöhnen'...

            Und Fehler versuche ich im vorraus schon soweit wie möglich einzugrenzen (hoffe das hat hier schon jemand bemerkt). Ausser ich bin mal wieder zu voreillig!

            Wenn mein Projekt fertig ist kannst es dir mal anschauen und sagen ob das zumindest eines 4-Monate-Erfahrenen PHP-Scripter würdig ist.....


            @Schnoop
            Hab deinen Lösungsansatz aufgegriffen und funktioniert tadellos!

            [PHP]
            $verz = dir("/usr/www/htdocs/meineadresse/backup/");
            while($entry=$verz->read())
            {
            if(stristr($entry,$needed)!='') unlink("/usr/www/htdocs/meineadresse/backup/".$entry);
            }
            $verz->close();
            [PHP]

            Kommentar


            • #7
              hier, was ich mit debugging meine:
              PHP-Code:
              $files glob('/path/to/files/foo.*');

              if (
              count($files) == 0)
                echo 
              "glob hat nichts enigelesen";
              else
              {
                  
              print_r($files);
                 foreach (
              $files as $v)
                {
                    if(
              file_exists($v))
                    {
                       echo 
              'lösche '.$v.'<br />';
                       
              unlink($v); 
                     }
                     else
                         echo 
              $v.' nicht gefunden<br />';
                }

              würdest du mit vb doch ähnlich machen...

              Kommentar


              • #8
                @penizillin

                Genau das mache ich ja!
                Und ich poste hier dann das wesentliche was für mich zählt bzw stelle meine Frage explizit an der angegeben Stelle wo es Probleme / Ungereimtheiten gibt.

                Und nicht erstmal das ganze Script posten und euch sagen: so, nun sucht mal wo der Fehler liegt.......

                Verstehst du ?

                Ich lerne mich eben grade nur in eine neue Programmiersprache ein......

                Aber nun sind wir ziemlich weit off-topic gegangen.
                Ich werde versuchen in Zukunft die 'Umstände' genauer zu erläutern!

                Ich danke euch jedenfalls recht herzlich für eure bisherige Unterstützung & macht weiter so!

                Kommentar


                • #9
                  aber so kannst du dich gezielter auf deine fehlerbeshreibung beziehen.

                  Kommentar


                  • #10
                    Statt unlink('foo*'); kannst du ja auch mal folgendes versuchen:
                    PHP-Code:
                    shell_exec('rm foo*'); 

                    Kommentar

                    Lädt...
                    X