rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Elimination des doublons en PHP

Posté par amin adam, le jeudi 16 août 2007 à 11:39:02
bonjour,
je debut en php , et je veux chercher dans un fichier .txt les mots qui se répete pour les eliminer et ne laisser qu'un seul.

est ce qu'il ya quelqu'un qui peut m'aider ou une idée?

merci d'avance.
Configuration: Linux
Firefox 1.5.0.12
Répondre à amin adam  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jeff, le jeudi 16 août 2007 à 11:43:14
Je dirais que tu devrais utiliser la fonction file() pour récupérer chaque ligne de ton fichier dans un tableau, puis array_unique() pour dédoublonner, puis file_put_contents pour enregistrer à nouveau le tableau dans le fichier txt ! Jeff - Wm@Ccm -
Répondre à Jeff

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amin adam, le jeudi 16 août 2007 à 12:17:15
merci ,
mais ca marche pas , c'est sur une mauvaise manipulation de ma part.
voila ce que j'ai fait:

$tableau = file('fichier.txt');
while(list($cle,$val) = each($tableau)) {
preg_match_all("/(<([_a-zA-Z0-9]+)=(.*[^>])>)(­.*)/", $val, $mat,PREG_SET_ORDER);//pour que je trouve des mot
entre < et = et >
foreach ($mat as $vall) {
$result = array_unique ($mat);
file_put_contents("fichier.txt","$val");­

echo $vall[2] ;
}
}

mon but c'est de trouver des mots dupliquer entre < et = puis les eliminer en laissant qu'un seul par ex :le premier.
Répondre à amin adam

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jeff, le jeudi 16 août 2007 à 13:23:19
J'ai simplifié ton expression régulière, par contre je ne comprends pas ce que tu veux faire ...
preg_match_all("/(<([_a-zA-Z0-9]+)=([^>]+)>)(.­*)/", $val, $mat,PREG_SET_ORDER);


Peux-tu poster un extrait de quelques lignes de ton fichier texte et indiquer comment tu veux le dédoublonner ? Jeff - Wm@Ccm -
Répondre à Jeff

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amin adam, le jeudi 16 août 2007 à 14:00:32
merci pour la simplification.
voila ce que je veux:

j'ai un fichier .txt dedant il ya des variables comme ceci
#######variable########
<longeur=2.3>:longeur
<profondeur=5.6>:profendeur
<longeur=2.3>:longeur
<surface=80>:surface
... etc
#####################

ce fichier il est générer automatiquement donc je ne peux pas savoir les variables avant.

ce que j'ai fait c'est de afficher c'est variable dans une page php voila le resultat:

longeur = 2.3 :longeur
profondeur = 5.6 :profendeur
longeur = 2.3 :longeur
surface = 80 :surface

jusqu'a ici tt marche bien.

le problem c'est la redondance des variables comme longeur par exemple

donc ce que voulais faire c'est avant l'extraction des variables je modifier mon fichier .txt te telle sort qu'il y aura pas des doublons.

voila le code de ce que j'ai fait pour extraire les données :

$tableau = file('/var/www/instr1.txt');

echo ("<CENTER>
<TABLE BORDER=0>
<UL TYPE=DISC>");
$i=1;
while(list($cle,$val) = each($tableau)) {
preg_match_all("/(<([_a-zA-Z0-9]+)=(.*[^>])>)(­.*)/", $val, $mat,PREG_SET_ORDER);
foreach ($mat as $vall) {
echo ("<TD><LI><label><strong>"­. $vall[2] ."</label></TD><TD><input type='text' name='champ$i' size='11' maxlength='39' value=". $vall[3] ." /></TD><TD> <font color='#0000FF'> ". $vall[4] ."</font></TD>\r\n") ;
echo ("</TR>");
$i=$i+1;
}
}
echo ("</TABLE></CENTER> ");
Répondre à amin adam

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amin adam, le jeudi 16 août 2007 à 15:11:15
ya personne qui peut m'aider!
Répondre à amin adam

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jeff, le jeudi 16 août 2007 à 15:55:02
Si la variable a toujours la même valeur (si longueur vaut toujours 2.3 dans le même fichier), alors tu peux faire ceci :

$tableau = file('fichier.txt');
$tableau = array_unique($tableau);
file_put_contents('fichier.txt',$tableau);


Avec ça ton fichier ne contiendra que des lignes uniques !
Jeff - Wm@Ccm -
Répondre à Jeff

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amin adam, le jeudi 16 août 2007 à 16:02:14
oui ca marche merci bcp pour l'aide :)
il me reste les lignes, ou la valeur de longeur est differente.
Répondre à amin adam

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amin adam, le jeudi 16 août 2007 à 17:17:42
voila j'ai trouver comment modifier le fichier .txt mais j'ai les variables sous cette forme :

#######variable########
<longeur=6.3>: [l]longeur1
<profondeur=5.6>: [p]profendeur
<longeur=2.3>: [aa]longeur2
<surface=80>: [m]surface
... etc
#####################

donc je peux affichier que ca :

longeur=6.3:[l]longeur1
profondeur=5.6: [p]profendeur
surface=80:[m]surface

avec cette expression :
preg_match_all("/(<([_a-zA-Z0-9]+)=(.*[^>])>:)­(\s <longeur=2.3>: [aa]longeur2 \s)(.*)/", $val, $mat,PREG_SET_ORDER);

mais ca marche ! help
Répondre à amin adam

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jeff, le jeudi 16 août 2007 à 17:21:06
Il faut "échapper" les crochets :

preg_match_all("/(<([_a-zA-Z0-9]+)=([^>]+)>:)(­\s*<longeur=[0-9\.]+>: \[aa\]longeur2)(.*)/", $val, $mat,PREG_SET_ORDER); 
Jeff - Wm@Ccm -
Répondre à Jeff

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 amin adam, le jeudi 16 août 2007 à 17:49:57
ca marche pas ca m'affiche rien .
parcontre j'ai enlever ca :

<longeur=[0-9\.]+>:

alors il m'affiche la ligne que je veux pas

longeur=2.3: [aa]longeur2

je fait quoi pour l'inverse.

Merci d'avance
Répondre à amin adam
Logiciels pertinents trouvés dans les téléchargements
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Télécharger HotPixels Eliminator   1.0HotPixels Eliminator - Les nouveaux appareils photos professionnels dites "reflex" permettent de laisser le temps d'exposition ou la durée...Catégorie: Retouche photo
Licence: Freeware/gratuit
Télécharger Spybot 1.6.0Spybot - Spybot - Search & Destroy détecte et supprime les spywares (espiogiciels), c'est-à-dire des programmes installés à votre...Catégorie: Anti-Spyware
Licence: Freeware/gratuit
Télécharger Trojan Remover 6.5.9Trojan Remover - Spécialement conçu pour éliminer les trojans (aussi appelés troyens ou chevaux de Troie ) ainsi que les intrus de type ...Catégorie: Anti-Spyware
Licence: Demo
Plus de logiciels gratuits sur « Elimination des doublons en PHP »