preg_match problem

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

  • preg_match problem

    Hi,

    da ich für mein problem mittels der suche etc. keine lösung gefunden habe poste ich nun doch mal mein problem.

    ich bin dabei eine verzeichnis liste zu erstellen und während des erstellens sollen bestimmte ordnernamen die irrelevant sind herausgefiltert werden. die order sehen im grunde so aus:

    Bilder.jahreszahl.ort
    Videos.jahreszahl.ort

    und noch weitere in dieser art diese befinden sich meinst in bestimmen ordnern die nur Bilder heisen also als hauptordner

    nun will ich eben das nur die unterordner also 'Bilder.jahreszahl.ort' ausgegeben werden und der hauptordner 'Bilder' herausgefiltert wird

    ich hab dies bereits mit preg_match versucht aber leider funktioniert es nicht so ganz

    PHP-Code:
    <?php
    $file_path 
    "/verzeichnis/"//dir
    $with_subdirs true// with subdirs?
    $what_dir "/\b(Bilder|Videos)\b/i"//

    function addfiles($path,$what_file,$with_subdirs)
    {
    global 
    $files,$what_dir;
    $files[0] = "";
    $handle = @opendir($path);
    while (
    $file = @readdir ($handle)) {
          if (
    $file != "." && $file != ".." && is_dir($path "/" $file) && !preg_match($what_dir$file) ){
            if (
    $with_subdirsaddfiles($path.$file."/",$what_file,$with_subdirs); // subdirs
             
    $files[] = $file// addfile
            
    }
        }
    @
    rewinddir ($handle);
    @
    closedir($handle);
    unset (
    $files[0]);
    return 
    $files;
    }

    $pics addfiles($file_path,$what_file,$with_subdirs);

    echo 
    implode("<br>",$pics);
    ?>

    dieses preg_match filtert mir allerding alle order die 'Bilder' und 'Videos' enthalten heraus und das ist nich das was ich will

    danke schonmal im vorraus fals mir jemand weiterhelfen kann

  • #2
    wenn die ordner, die du nicht willst, KEINEN "." enthalten, wäre imho strpos() sinniger als preg_match()
    Kissolino.com

    Kommentar


    • #3
      Das wäre ne möglichkeit aber es sind auch Ordner mit . dazwischen darunter. Deswegen wollte ich eben preg_match() benutzen um zu schauen ob der string alleine steht oder im zusammenhang mit weiteren zeichen etc.

      Kommentar


      • #4
        ok hab nun den 'fehler' gefunden

        PHP-Code:
        while ($file = @readdir ($handle)) {
              if (
        $file != "." && $file != ".." && is_dir($path "/" $file) ){
                if (
        $with_subdirsaddfiles($path.$file."/",$what_file,$with_subdirs); // subdirs
                
        if(!preg_match($what_dir$file)) {   /// neue if-schleife
                 
        $files[] = $file// addfile
                
        }
                }
            } 
        der preg_match() war in der falschen if schleife bzw. an der falschen stelle im script

        Kommentar

        Lädt...
        X