Partage
  • Partager sur Facebook
  • Partager sur Twitter

Choisir plusieurs dossier

pour une seule variable

    12 janvier 2006 à 22:57:58

    Bonsoir, je voulais savoir si il était possible de choisir plusieurs dossier pour une même variable, voici ma ligne de code :


    $dir = isset($_POST["dir"]) ? $_POST["dir"] : "tech/";


    Ici mon dossier de destination est tech/, est-il possible d'en ajouter d'autres. o_O

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      12 janvier 2006 à 23:59:46

      Avec un tableau ?
      $dir = array('tech/' , 'unautredossier/' , 'dossier3/sousdossier/') ;
      • Partager sur Facebook
      • Partager sur Twitter
        13 janvier 2006 à 18:10:05

        Arf ca marche pas :(

        voici les messages d'erreur que j'ai :

        Warning: preg_match() expects parameter 2 to be string, array given in /home/web/www/recherche.php on line 41

        Warning: opendir(Array/): failed to open dir: No such file or directory in /home/web/www/recherche.php on line 57
        Échec ouverture Array/

        Warning: readdir(): supplied argument is not a valid Directory resource in /home/web/www/recherche.php on line 59

        Warning: closedir(): supplied argument is not a valid Directory resource in /home/web/www/recherche.php on line 84


        Voici mon code :


        <?php
        // chemin à définir par défaut ou non au choix (attention chemin fichier et non web)
        $dir          = array("tech/", "pop/");
        $expression   = isset($_POST["expression"]) ? $_POST["expression"] : "";
        $fichier_down = isset($_GET["lechemin"]) ? $_GET["lechemin"] : "";


        if ($fichier_down) {
                $chemin_fic = pathinfo($fichier_down);

                header("Content-type: application/octet-stream");
                header("Content-Disposition: attachment; filename=".$chemin_fic["basename"]);
                header("Content-Transfer-Encoding: binary");

                $fichier_down = str_replace("\\", "\/", $fichier_down);
                $fichier_down = str_replace("\\\\", "\/", $fichier_down);
                $fichier_down = str_replace("\/\/", "\/", $fichier_down);

                readfile(stripslashes($fichier_down), "r");

                exit();
        }

        echo '
        <html>
        <head></head>
        <body>
        <form method="post">
        <table>
                <tr>
                        <td>Entrez la Chaîne à rechercher :</td>
                        <td><input type="text" name="expression" value="'
        .$expression.'" /></td>
                </tr>
                <tr>
                        <td colspan="2" align="center"><input type="submit" value="Rechercher" /></td>
        </table>
        '
        ;

        if (!Empty($expression) && !Empty($dir)) {
                $mydir = $dir;
                $mydir = preg_match("/[\/|\\ ]$/", $mydir) ? $mydir : $mydir."/";
                $expression = addslashes($expression);
                $expression = str_replace("(", "\(", $expression);
                $expression = str_replace(")", "\)", $expression);
                $hash = array();

                recur($mydir, $expression);
                afficher_tableau($hash);
        }

        function recur($dir, $expression) {
                global $hash;

                $chemin = pathinfo($dir);

                if ($chemin["basename"] == ".." || $chemin["basename"] == ".") return;
                if (!$dir2 = opendir($dir)) print "Échec ouverture $dir<br>";

                while ($file = readdir($dir2)) {
        //            if (is_dir($dir."/".$file) || $file == "." || $file == "..&quot;) @recur($dir."/".$file, $expression);
                        if (is_dir($dir."/".$file) || $file == "." || $file == "..") @recur($dir."/".$file, $expression);
                        else {
        //                  if (!$lefich = fopen("$dir/"."$file", "r&quot;)) print "Échec ouverture $file<br>";
                                if (!$lefich = fopen("$dir/"."$file", "r")) print "Échec ouverture $file<br>";
                                else {
                                        $i = 0;

                                        while ($ligne = fgets($lefich, 4096)) {
                                                $i++;

                                                if (preg_match("/.*($expression).*/i", $ligne, $monres)) {
                                                        $monres[0] = preg_replace(array("/</", "/>/"), array("", ""), $monres[0]);
                                                        $monres[0] = preg_replace("/($expression)/i", "<font color=red>\\1</font>", $monres[0]);
        //                                    $hash[$dir][$file][$i] = $monres[0];
                                                        $hash[$dir]['<a href="lecture_select.php?lechemin='.$dir.'/'.$file.'">'.$file.'</a>'][$i] = $monres[0];
                                                }
                                        }
                                }

                                fclose($lefich);
                        }
                }

                closedir($dir2);
        }

        print "
        </form>
        </body>
        </html>
        "
        ;

        function afficher_tableau($tableau, $nomfic = "", $tab = "") {
                if (is_array($tableau)) {
                        foreach ($tableau as $cle => $valeur) {
                                if (is_array($valeur)) {
                                        if ($nomfic) {
                                                fputs($nomfic, "$tab \n");
                                                @afficher_tableau("\t");
                                        } else {
                                                print $cle.' <ul>';
                                                @afficher_tableau($valeur);
                                                print '</ul>';
                                        }
                                } else {
                                        if ($nomfic) fputs($nomfic, "$tab$cle \n");
                                        else print " <br>";
                                }
                        }
                } else {
                        if ($nomfic) fputs($nomfic, "$tableau");
                        else print $tableau;
                }
        }
        ?>

        • Partager sur Facebook
        • Partager sur Twitter

        Choisir plusieurs dossier

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown