Bonjour ,
J'ai un certain nombre de liens dans une page, de type flux xml ou csv ou html peu importe, je souhaiterais traiter uniquement les liens qui ne font pas directement référence à une image.
J'ai déjà commencé à créer une regex mais je bloc sur un point :
Le resultat me donne ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $regex = '#http(.*)([^jpg|gif|png]*)#i'; $replace = "http://www.mondomaine.com/test.php?redirect=$0"; $contenu = " http://www.domaine.com/article/blabla.php?ids=1&idc=2<br> http://www.domaine.com/image/bla-bla.jpg<br><br> http://www.domaine.com/article/bla-bla.jpg<br> http://www.domaine.com/image/blabla.php?ids=1&idc=2<br>"; echo preg_replace($regex, $replace, $contenu);
Sur les 2 premières liens ça marche mais sur les 2 autres liens que j'ai volontairement inversés pour verifier tous les cas de figure ça modifie les mauvais liens
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 http://www.mondomaine.com/test.php?redirect=http://www.domaine.com/article/blabla.php?ids=1&idc=2 http://www.domaine.com/image/bla-bla.jpg http://www.mondomaine.com/test.php?redirect=http://www.domaine.com/article/bla-bla.jpg http://www.domaine.com/image/blabla.php?ids=1&idc=2
Mon but est de créer une regex qui modifierait un ensemble de liens commençant par http mais ne se terminant pas par jpg ou gif ou png.
Pouvez vous m'aider ou me donner des pistes à suivre, j'ai déjà usé tous les tutoriels, dans le principe je comprend les regex mais dans la pratique c'est vraiment autre chose
Merci d'avance![]()
Partager