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 :

array_unique ne fonctionne pas comme je le voudrais [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 152
    Par défaut array_unique ne fonctionne pas comme je le voudrais
    Bonjour,

    Je travaille beaucoup avec des regex en ce moment.

    J'ai un petit problème, j'ai dans un fichier texte des données du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <tr>
    <td>
    <a href='loulou/1212042422.html'>loulou #38</a> (0.72KB)
    </td>
    <td>
    <a href='loulou/d1212042422.html'>detailed list #38</a> (2.22KB)
    </td>
    <td>
    Je souhaite extraire uniquement la partie suivante: 1212042422.html

    J'ai donc créé un REGEX et cela fonctionne à merveille...saur que cela extrait 2 fois les données...Normal me direz vous, vu qu'il y a 2 fois les mêmes séries de nombres dans mon fichier texte.

    J'aimerai que cela me fasse le tri et ne retourne qu'une fois le résultat. J'ai donc utilisé array_unique mais cela ne fonctionne pas...Ou est l'erreur?

    Merci

    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
     
    <?php 
    $fp =  file("texte.txt");
     
    foreach($fp as $line) {
    $res = preg_match_all(
    "#[0-9]{5,}\.html#i",
        $line,
        $matches
    );
    if ($res) {
    foreach(array_unique($matches[0]) as $res) {
        echo "Extraction : ", $res, "\n <br>";
     
    }
    }
    }
    ?>

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 152
    Par défaut
    C'est bon, j'ai fait:

    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
    <?php
     
    $content = file_get_contents('texte.txt');
     
    if(false !== preg_match_all("#[0-9]{5,}\.html#i", $content, $matches)) {
     
    	if(is_array($matches[0]) && sizeof($matches[0])>0) {
    		$matches = array_unique($matches[0]);
    	}
     
    	foreach($matches as $i => $match) {
    		echo 'Extraction : ', $match, '<br/>'."\n";
    	}
    }
     
    ?>
    merci

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

Discussions similaires

  1. [Spip] soucis [(#COMPTEUR_BOUCLE|alterner{'<tr>',''})] fonctionne pas comme je le voudrais
    Par oceane751 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 28/08/2008, 16h01
  2. [MySQL] Un formulaire qui ne fonctionne pas comme il faut (problèmes avec stripslashes & com)
    Par vincent.b dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/04/2007, 20h02
  3. requete qui ne fonctionne pas comme je shouterais
    Par domino_dj dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/04/2007, 12h27
  4. un if qui ne fonctionne pas comme je veux
    Par Kelly182 dans le forum Access
    Réponses: 4
    Dernier message: 27/07/2006, 15h12
  5. time.sleep() ne fonctionne pas comme souhaité
    Par Olivier_ dans le forum Général Python
    Réponses: 3
    Dernier message: 19/11/2005, 01h46

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