begin process at 2012 05 29 01:53:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Expressions régulières pour la suppression de balises


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Expressions régulières pour la suppression de balises

mardi 13 décembre 2005 à 14:00:49 | Expressions régulières pour la suppression de balises

f6xara

J'ai fait un module de template transformant tout ce qui se trouve entre {} par la variable équivalente.

Si la variable n'est pas trouvées, alors, on supprime dans le template les {} à l'aide d'une expression régulière ($texte = preg_replace('/{[^ \t\r\n}]+}/', "", $texte); )

Mais voilà, tout les scripts javascript contenant des {} sautent aussi (exemple function check(){ alert('oui'); } devient function check() )

Alors j'essaye mais en vain d'exclure de la première expression régulière tout ce qui se trouve entre les balises <script> et </script>

// l expression ci dessous retire les balises scripts mais je ne parviens pas à faire la fonction qui permet de ne pas y modifier
  $search = array ('@{.*?}@si', '@<script.*?</script>@si');        
    $texte = preg_replace($search, array('', ''), $texte);


Merci d'avance à celui qui pourra m'aider



mardi 13 décembre 2005 à 14:24:50 | Re : Expressions régulières pour la suppression de balises

J_G

Et oui, et oui...

C'est le grand malheur des expressions régulières, elles ne gèrent pas l'exculsion dune chaine complète. (ou si qq'un sait comment faire, je suis preneur !!!)


Donc il faut feinter...

J'ai bien une méthode pour recréer cette fonctionnalité, mais le plus simple serait de savoir par quoi sont identifiables les variable de tes templates.

Par exemple, si tu les encadres avec : , il sera facile de les re-trouver...

'/{:[\S]+:}/'

=> connais-tu le \S qui veut dire "tout ce qui n'est pas un caractère blanc", soit : [^\n\r\t ] (et d'autres caractères)


Sinon, je peux te donner une piste pour recréer ton exclusion, mais t'es mal barré car le javascript ne se trouve pas seulement entre des balise <script>

ex : onclick=""

puis il y'a aussi le CSS enligne qui à des accolades...
Bref, je trouve que tu as mal choisi tes {} pour encadrer tes variables de templates...

mardi 13 décembre 2005 à 14:26:01 | Re : Expressions régulières pour la suppression de balises

kankrelune

Membre Club
Change les démarquations de tes variables par autre chose... ça serait plus simple non... genre <{ma_var}> ou %ma_var%... enfin... ce que j'en dis... .. . ;o)

@ tchaOo°
mardi 13 décembre 2005 à 16:36:22 | Re : Expressions régulières pour la suppression de balises

f6xara


En fait, il n'y a que des fonctions (pour les onclick , cela génère la fonction automatiquent et pour les style, c'est tout dans une css a part qui ne passe pas par le template).

J'ai mis d'autres caractères à la places des accolades, mais mon system de template gèrent les boucles et donc lors de l'execution du template mes délimiteurs (<%| |%>) sont remplacés par { }. Une fois sorti de la boucle, le contenu généré est parfois réappeler dans d'autres boucles et la je retombe sur le meme probleme.

Je ne vois alors comme solution d'exclure toutes les { } avec des retours chariots dedans, mais la je sèche aussi.



jeudi 15 décembre 2005 à 08:54:24 | Re : Expressions régulières pour la suppression de balises

f6xara

Réponse acceptée !
Bon j'ai résolu mon problème et donne la solution pour ceux que ça pourrait interesser:

Quand une variable entre accolade dans mon template n'était pas renseignée, alors je la virais. Pour ça je remplaçais ce qui se trouvait entre accolade par rien :
$texte = preg_replace('@{.*?}@si', '', $texte );

alors pour garder le javascript, il fallait que je garde toutes les variables dont les accolades étaient suivies d'un retour à la ligne ou d'un espace :
{MAVAR} <- Variable de template
{
MAVAR
} ou { MAVAR } <- a garder tel quel

Pour ça j'ai utilisé l'expression :
 $texte= preg_replace('/{[^ \t\r\n}]+}/', "",  $texte);





Cette discussion est classée dans : texte, expression, expressions, balises, régulières


Répondre à ce message

Sujets en rapport avec ce message

Expressions régulières [ par darkduck ] Salut,J'aimerai virer les - entre chevrons grace à une expression régulière.Je m'explique :-texte>test-test-texte>-joli-texte>y-a-t-il quelqu'un-</b Expressions régulières, exclure le contenu entre certaines balises [ par f6xara ] Bonjour, j'ai fais un system de template pour mon site. Lors de l'affichage je fais un nl2br($texte) pour faire les sauts de lignes. Mais dans ma vari Expressions régulières [ par martins13 ] Salut à tous!!!Je cherche à faire une expression régulière pour une adresse postale du type :13, Boulevard BailleMais je veux que les caractères accen Expressions Régulières [ par neurosupherot ] Bonjour, il s'agirait de s'ammuser avec les expressions régulières j'ai un petit souci. j'ai fait mon propre bbcode, et tout semble fonctionner, sauf: expressions régulières [ par dlimouzin ] J'ai le code ci-dessous dont l'objectif est de mettre en lien le mot "beau" quelque soit son écriture et sa position dans la phrase mais sans sélectio Comment prendre un texte entre deux balises svp? [ par Linuss ] Bonjour à tous, J'aurais voulu savoir comment faire pour prendre un texte en php qui est par exemple entre deux balises svp?ex : Texte ici      Second Répétition d'élément texte [ par j3r3m067 ] Salut à tous, J'ai programmé une application sous Firefox (aucun problème), mais sous IE j'ai mes éléments qui se trouvent dans des balises h3 ou enc Faire un fichier PDF à partir d'une table contenant des balises [ par calimeria ] Bonjour à tous ! J'ai une application en php (EasyPHP) qui permet de saisir des articles (avec photos) et qui utilise une base de données MySQL. Et d Récupération de texte entre des balises - PHP [ par tsh9 ] Bonjour, j'aimerais récupérer tout le texte entre les balises Texte d'un fichier XML. Malheureusement je ne maîtrises pas les expressions régulières, Imagestring PHP et balises HTML [ par sylvainbrt ] Bonjour, J'ai regardé un peu partout sur le net et je n'ai trouvé aucune réponse à la question que je me pose. Pour mettre du texte sur une image, av


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales