Rechercher : dans
Par :

Elimination des doublons en PHP

Dernière réponse le 16 fév 2009 à 23:52:10 amin adam, le 16 aoû 2007 à 11:39:02 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Elimination des doublons en PHP » dans :
SQL - éviter les doublons dans un SELECT VoirProblème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
Supprimer les doublons dans une colonne Excel VoirPour extraire les doublons dans une colonne Excel : Cliquer sur le menu "Données" "Filtrer" "Filtre élaboré" Dans ce menu, sélectionner la colonne où se trouvent les doublons Cocher la case "Extraire sans doublon" La seule chose est que...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...

1

Jeff, le 16 aoû 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

amin adam, le 16 aoû 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

Jeff, le 16 aoû 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

amin adam, le 16 aoû 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

amin adam, le 16 aoû 2007 à 15:11:15

Ya personne qui peut m'aider!

Répondre à amin adam

6

Jeff, le 16 aoû 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

amin adam, le 16 aoû 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

amin adam, le 16 aoû 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

Jeff, le 16 aoû 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

amin adam, le 16 aoû 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

11

 dixup, le 16 fév 2009 à 23:52:10

Bonjour moi je voudrais eliminer les doublon dans une liste d'url stoké dans un fichier txt ? comment faire svp .

Répondre à dixup
Collection CommentÇaMarche.net