dédoublonner un fichier xml

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : dédoublonner un fichier xml

Re: dédoublonner un fichier xml

par Maskime » 20 avr. 2011, 15:22

Hello,

dans ce genre d'algo il faut commencer par poser les bases.
Dans ton cas la question qu'il faut te poser c'est qu'est ce qui fait que 2 items sont identiques.
Parce que j'ai du mal à comprendre comment est ce que tu veux détecter des doublons qui n'en sont pas...
en 1) je filtre bien "mon tableau est important" = > "mon tableau est important"
en 2) je ne fitre pas "mon tableau" = > "mon tableau est important"
Pour moi il me semble normal que ton 2eme cas ne fonctionne pas parce que tes 2 titres sont bien différents ou alors il faut que tu gères des pourcentage de similitude...
Donc à mon avis, il y a un truc que tu nous dis pas qui est important pour déterminer si tes "items" de ton fichier RSS sont identique ou non...

dédoublonner un fichier xml

par manuso » 19 avr. 2011, 23:33

Bonsoir,

si quelq'un passe par là, pour éclaircir ma démarche, merci d'avance !
mon objectif est de supprimer les doublons dans un fichier xml,
dans un premier cas, je peux éliminer les titres entiers en doublons en passant
par un tableau internmédiaire, et

1) if (!in_array($item['title'],$tab_desc)) puis vider $title lorsque c'est nécessaire

Mais c'est incomplet par rapport au projet
j'ai donc raccourci la valeur $title pour pouvoir faire la recherche dans
mon tableau avec preg_match mais je n'arrive pas à filtrer comme dans le premier
cas.

2) if (!preg_match('/$val/',$tab_desc)) recherche
ne fonctionne pas, ou plutot je crois mon code ou mon raisonnement n'est pas bon par rapport
à ce que je veux obtenir dans le cas 2.

en 1) je filtre bien "mon tableau est important" = > "mon tableau est important"
en 2) je ne fitre pas "mon tableau" = > "mon tableau est important"

merci de votre aide,

Code : Tout sélectionner

function Parser($url_feed, $nb_items_affiches=8) { //initialisation du tableau inetermediaire $tab_desc = array(); // lecture du fichier distant (flux XML) $rss = fetch_rss($url_feed); if (is_array($rss->items)) { // on ne recupere que les elements les + recents $items = array_slice($rss->items, 0, $nb_items_affiches); // boucle sur tous les elements foreach ($items as $item) { // on raccourci les valeurs $val= substr($item['title'],0,28); if (!preg_match('/$val/',$tab_desc)) { $title = $item['title']; array_push($tab_desc,$item['title']); } else { //sinon on vide la variable title $title = ""; $html .= ""; // vide; }