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 31/03/2006, 08h30   #1
Membre du Club
 
Inscription : avril 2003
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : avril 2003
Messages : 117
Points : 62
Points : 62
Par défaut motif pour remplacer un mot dans du code HTML ...

... sans le remplacer dans les balises HTML ou dans leurs attributs.

Bonjour à tous,

je cherche un motif pour un ereg_replace qui permettrait de remplacer un mot par un autre. Mon motif marche bien mais me remplace également ce mot dans les attributs de balises HTML (par exemple dans l'attribut alt des images).

Quel motif je pourrais utiliser pour éviter cela ?

Par avance merci
r-zo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 09h14   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Dans un premier temps, il est toujours préférable d'utiliser les PCRE que les regex POSIX. Elles sont faciles à trouver car elles commencent toutes par preg_.
Ensuite, je n'aurai pas le temps d'approfindir avec toi mais je peux t'orienter : je pense qu'il te faut chercher du côté des assertions avant/arrières positives/négatives.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 09h55   #3
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
j'ajouterais :

http://cyberzoide.developpez.com/php4/regex/
http://fr2.php.net/manual/fr/function.preg-replace.php


__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 11h32   #4
Membre du Club
 
Inscription : avril 2003
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : avril 2003
Messages : 117
Points : 62
Points : 62
je vous remercie pour ces docs mais je les ai déjà lu.

Mon problème est plutôt de trouver un motif qui remplacerait mon mot dans tout le texte sauf dans dans les balises html
r-zo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 11h43   #5
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Tiens, je t'ai retrouvé un ancien topic sur le même sujet :
http://www.developpez.net/forums/viewtopic.php?t=474735
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 12h17   #6
Membre du Club
 
Inscription : avril 2003
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : avril 2003
Messages : 117
Points : 62
Points : 62
C'est super aimable de ta part d'avoir cherché ce topic. La solution n'a pas l'air de marcher tel quel mais je pense que je suis sur la bonne voie.

Merci beaucoup
r-zo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 13h31   #7
Membre du Club
 
Inscription : avril 2003
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : avril 2003
Messages : 117
Points : 62
Points : 62
en fouillant à droite à gauche, je pense avoir trouvé la solution

Code :
1
2
3
4
5
6
 
function split_balise($on_recherche, $on_remplace, $subject, 'str_replace', $flag = 1)
{
   $eval_fct = "mon_rplc('\$1', '\$2', \$de, \$par, '$fct', '$flag')";
   return preg_replace('#((?:(?!<[/a-z]).)*)([^>]*>|$)#ies', $eval_fct, $txt);
}
Cette solution fonctionne bien ...
r-zo 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 23h06.


 
 
 
 
Partenaires

Hébergement Web