Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/03/2011, 19h59   #1
Membre du Club
 
Avatar de Shandler
 
Inscription : février 2005
Messages : 485
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 485
Points : 67
Points : 67
Par défaut Expression reguliére sur href

Bonjour,

Voila mon probléme, j'ai du texte provenant d'un bdd qui contient des lien et je voudrais pouvoir ajouter un paramètre a c'est lien.

Exemple

Citation:
Ce que j'ai en bdd : mon texte bllalblbb <a href="monlien.html">mon premier lien</a> blouifdf ouuidfd <a href="http://monlien.html">mon second lien</a> fgfgfgfgfgfg
Citation:
Ce que je voudrai après la regex : mon texte bllalblbb <a href="monlien.html?param=1">mon premier lien</a> blouifdf ouuidfd <a href="http://monlien.html?param=2">mon second lien</a> fgfgfgfgfgfg
Sachant que parfois dans l'url il peut y a voir un target blank et que si le href est vide ou contient un # il faut pas rajouter le paramétre.

Moi j'ai trouvé cette expression mais elle fait le contraire de ce que je veux.

Code :
1
2
3
4
$string = '<a href="test.html">sdsdsd</a>';
$pattern = '`<a href=["\'#]?([^"\'#>]+)["\'#]?>`';
$replacement = '${1}?param=1';
echo preg_replace($pattern, $replacement, $string);
Si vous avez une idée merci a vous.
Shandler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 11h03   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

Tu peux essayer ceci
Code :
1
2
3
4
5
6
7
<?php
$subject = 'texte <a href="monlien.html">mon premier lien</a> texte <a href="#test">mon second lien</a> texte';
$pattern = '/href="([^#]+)"/ismU';
$replacement = 'href="$1?param=1"';
 
echo preg_replace($pattern, $replacement, $subject);
?>
Bon développement
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 17h32   #3
Membre du Club
 
Avatar de Shandler
 
Inscription : février 2005
Messages : 485
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 485
Points : 67
Points : 67
Merci beaucoup ca marche nickel.
Shandler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 10h16   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
arf... encore des regex la ou y'en a pas besoin, output_add_rewrite_var est la pour ça
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h45.


 
 
 
 
Partenaires

Hébergement Web