Voici ce que je veux faire:
1) je connais une url de la forme http://url_du_site.com/name1.aspx?label=1&lang=1&n=1
2) lorsque j'ouvre cette page, ça m'affiche un fichier xml de la forme:
<?xml version="1.0" encoding="UTF-8" ?>
- <ROOT>
- <Tag1>
- <Value1="XXX">
- <V FieldID="123456" Field2ID="789" ...
- <V FieldID="234567" Field2ID="678" ...
- <V FieldID="345678" Field2ID="567" ...
3) J'aimerais récupérer toutes ces valeurs de FieldID et, pour chaque valeur, ouvrir les liens suivants:
http://url_du_site.com/name2.aspx?id=123456&lang=1&n=1&diff=1&r=12345678910
Maintenant, la pratique
Voici comment je procède:
Pour l'instant, j'en suis là, je ne sais pas encore comment je vais faire ma boucle pour récupérer toutes les urls où j'aurais remplacé le $1 par la valeur récupérée dans mon premier lien, mais déjà, ça bloque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $url = 'http://url_du_site.com/name1.aspx?label=1&lang=1&n=1'; $file = file($url); $file = preg_replace('#FieldID="(.+)" Field2ID#', "http://url_du_site.com/name2.aspx?id=$1&lang=1&n=1&diff=1&r=12345678910", $file);
Voici ce que j'obtiens:
http://url_du_site.com/name2.aspx?id=123456" Field2ID=...
Tout ce qui est après le $1 a disparu, ainsi que FieldID=
Je pensais que le preg_replace marchait de la manière suivante:
preg_replace('#chaine_à_chercher_de_début(.+)chaine_à_chercher_de_fin#','début_de_ma_nouvelle_chaine$1fin_de_ma_nouvelle_chaine,où_chercher);
avec (.+) représentant tout ce qu'il y a entre les 2 chaines de caractères définies et $1 représentant, dans la nouvelle chaîne, ce que l'on a trouvé...
J'ai mis des anti-slashes, j'ai essayé plein de trucs, mais rien ne marche
Merci par avance de votre aide.
Michel
Partager