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 :

Traitement des doublons


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Points : 45
    Points
    45
    Par défaut Traitement des doublons
    Bonjour,

    Je développe un programme qui permet ,dans un répertoire, de modifier des fichiers.xml en les transformant en .txt dont le titre est une balise contenue dans le xml.

    Je traite bien les fichiers mais il arrive que des fichiers XML contiennent la même balise constituant le nommage du fichier .txt

    exemple :
    contenu de 12345.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    <Sujet>5-communes</Sujet>
    ...
    contenu de 23456.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    <Sujet>5-communes</Sujet>
    ...
    J'aimerais récupérer les 2 fichiers , tester si ils se nomment de la même manière, pouvoir renommer le 2nd en 5-communes-1 dans notre cas.

    J'ai essayé "file exists", mais ça ne remarque pas qu'il existe déjà ?!?
    voici mon prog

    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
     
    <?php
     
    // on ouvre le repertoire
    $handle = opendir('.');
     
    // on scrupte le repertoire
    while(false !== ($file = readdir($handle))) {
        if($file != "." && $file != ".." && $file !="transxml.php") {
     
    // on cree le chemin
    $path = '.'.'/'.$file;
     
    // on traite tous les fichiers xml
    if (preg_match('~\T.xml$~',$file)) {
     
    // on applique la transformation
    x$sxml = simplexml_load_file($path);
    $titre = utf8_decode($sxml->Proprietes->Sujet);
    //echo utf8_decode($sxml->Contenu);
    $texte = utf8_decode($sxml->Contenu);
     
    $texte = str_replace('?',"'",$texte);
    $texte = str_replace('\(','',$texte);
    $bad = array ('\cST\s','\cTI\s','\cTX\s','\cSG\s','\$','\dSG\t','\dDS1,2\t','\dFS\t','\dSN\t','\dSI\t','\cCH\s');
    $good = array ('','','',' ',' ','','','','','','');
    $texte = str_replace ($bad,$good,$texte);
     
    $titre = str_replace (' ','_',$titre);
     
    // on cree le fichier destination avec les donnees du fichier source
    $fp = fopen ('.' . DIRECTORY_SEPARATOR . $titre. '.txt','w');
    fputs ($fp,$texte);
    fclose ($fp); 
    }
    }
     
    }
     
    // on ferme le repertoire
    closedir($handle); 
    ?>
    Merci d'avance pour vos réponses , car je nage

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Je suis étonné que file_exists ne marche pas, peux tu mettre le code avec le file_exists s'il te plait?

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    voici la syntaxe que j'utilise ...je ne vois pas de toto à l'affichage !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ...
    ...
     
    $fp = fopen ('.' . DIRECTORY_SEPARATOR . $titre. '.txt','w');
    if (file_exists($fp)) {
    echo "toto";
    }
    else
    fputs ($fp,$texte);
    fclose ($fp);
    merci pour votre aide

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    file_exists() prend un nom de fichier en paramètre et pas une ressource sur un fichier ouvert.

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    si je met :

    if (file_exists($titre.'.txt')) {
    echo "toto";
    }

    j'ai autant de "toto" que de fichiers, alors que je voudrais avoir un "toto"
    quand il y a un doublon.

    ou dois-je placer le if ?

    merci d'avance

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    c bon, j'ai trouvé la bonne syntaxe , il faut metttre le if avant le fopen de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (file_exists($titre.'.txt')) {
    $titre = "$titre-1";
    }
     
    $fp = fopen ('.' . DIRECTORY_SEPARATOR . $titre. '.txt','w');
    fputs ($fp,$texte);
    fclose ($fp);
    @+ !!! et merci encore !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/06/2015, 10h21
  2. Traitement des données après filtre et suppressions de doublons
    Par cheerleaders dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 12/06/2015, 09h56
  3. [Conception] Traitement des doublons (grosse BDD)
    Par masseur dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 05/07/2007, 08h59
  4. Traitement des Doublons
    Par dert72 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/06/2006, 09h46

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