IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème avec deux boucles


Sujet :

Langage PHP

  1. #1
    Inscrit
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 151
    Points
    151
    Par défaut Problème avec deux boucles
    Bonjour,

    Voila j’ai un gros problème que je n’arrive pas a résoudre

    Je dois lister un répertoire, puis remplacer dans chaque fichier une expression par une autre, est en même temps faire une sauvegarde du fichier d’origine avec un ajout de _old_ au début.

    Le problème est que ca marche, mais je me retrouve avec des centaine de fichier genre
    _old_product.tpl
    _old__old_product.tpl
    _old__old__old_product.tpl
    _old__old__old__old_product.tpl
    _old__old__old__old__old_product.tpl
    _old__old__old__old__old__old_product.tpl
    etc..


    Avez-vous une solution svp.
    Merci d'avance


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    if ($_POST['themes_modifi'] == 'themes_modifi') // si la case est coché alors modifie le theme
    	{
     
    $row = 0;
    $update = "";
    $separator = "";
    $idx_nom = 0;
    $idx_rubrique = 1;
    $dir1 = 'C:/xampp/htdocs/'._THEMES_DIR_._THEME_NAME_.'/';
    $dirname = $dir1;
    $dir = opendir($dirname); 
     
    while($file = readdir($dir)) {
    	if($file != '.' && $file != '..' && !is_dir($dirname.$file))
    	{
     
    // debut pour product-list.tpl
    $fichier_dorigine = $file; //Fichier a modifier
    $fichier_old = '_old_'.$file; //Fichier originale save "_old_...
    $tfile = $dir1.$fichier_old; 
    	if (file_exists($tfile)) { 
    	echo ("<P>File '$tfile' exists </P>"); 
    	unlink ($dir1.$fichier_dorigine);
    	rename($dir1.$fichier_old, $dir1.$fichier_dorigine); 
    	} else { 
    	echo ("<P>File '$tfile' does not exist </P>"); 
    	} 
    unlink ($dir1.$fichier_old);
    rename($dir1.$fichier_dorigine, $dir1.$fichier_old); 
    $fichier = fopen($dir1.$fichier_old,"r" ); 
    $fichier2 = fopen($dir1.$fichier_dorigine, "w+" ); 
    $modif1 ='<img src="{$link->getImageLink($product.link_rewrite, $product.id_image'; // cherche est remplace
    $new_modif1 ="\n"."\n"."\n".'<img src="{$product.legend}"'; // remplacer par
    //$modif2 ='height}"{/if} /></a>';
    //$new_modif2 ='<img src="{$product.legend}"'."\n"."\n";
     
     
    if (($handle = fopen($dir1.$fichier_old, "r")) !== FALSE) 
    {
        while (($data = fgetcsv($handle, 1000, "\n")) !== FALSE) 
        {
          $data = str_replace($modif1,$new_modif1,$data); 
    	//  $data = str_replace($modif2,$new_modif2,$data); 
          $update   .= implode($separator,$data)."\r\n";
          $row++;
       }
        fclose($handle);
    }
    $ouvre=fopen($dir1.$fichier_dorigine,"w+");
    fwrite($ouvre,$update);
    fclose($ouvre);
     
     
     
    		//echo '<a href="'.$dirname.$file.'">'.$file.'</a><br>';
    	}
    }
     
    closedir($dir);
     
     
     
     
    }

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Solution basique : exclure les fichiers préfixés par _old_ du système

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($file != '.' && $file != '..' && !is_dir($dirname.$file) && (strpos('_old_', $file) === false))

  3. #3
    Inscrit
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 151
    Points
    151
    Par défaut
    re,

    Merci a toi, celira, tu ma sauvé la journée car ca fonctionne parfaitement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec deux boucles do whiles imbriquées
    Par breizh297 dans le forum Fortran
    Réponses: 1
    Dernier message: 15/11/2010, 08h37
  2. Réponses: 3
    Dernier message: 24/05/2007, 17h56
  3. [JMeter] Problème avec la boucle infinie pour les tests
    Par zegreg dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 05/10/2005, 11h41
  4. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 15h42
  5. Réponses: 22
    Dernier message: 29/01/2005, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo