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 02/02/2007, 11h45   #1
Invité de passage
 
Inscription : février 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 5
Points : 1
Points : 1
Par défaut Vérifier si une chaîne se trouve entre deux balises ?

Bonjour,
Je galère depuis un certains temps a essayer de faire une expression régulière qui verifie que la balise </body> n'est pas appelé par un echo.

J'ai essayer de pondre une regex qui vérifieque la balise </body> n'est pas entouré de <?php|<? Et ?>, mais cela ne fonctionne pas.

Citation:
Exemple problématique :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Code html :
<?php
	if(mysql_num_rows($menu_gal)) {
		while ($d=mysql_fetch_array($menu_gal,MYSQL_ASSOC)) {
			echo'<a href="/galerie-reception/',rewriteUrl($d['cat']),'-',$d['id'],'.html" ';
			if($cat)
				if($cat['cat'] == $d['cat'])
					echo $aktif;
			echo'>',txthtml($d['cat'],0),'</a>';
		}
	}
	else
		echo'<a href="#" ',$aktif,'><strong>La galerie est vide pour le moment</strong></a>';
	?>
</div>
<div id="dyn_cont"></div>
</div>
</body>
</html>
<?php
include_once 'inc/png.php';
echo replacePngTags(ob_get_clean());
?>
Code :
1
2
Regex
(<[?](php)?)((.?|[[:space:]]?)*)</body>(.?|[[:space:]]?)*[?]>

Le problème dans ma regex, c'est que je ne vérifie pas si la balise php se reférme avant le body et si elle s'ouvre après. Et je ne sait pas comment écrire cela.

Pouvez-vous me mettre sur la voie.
Merci.
symbolyk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2007, 23h52   #2
Membre habitué
 
Avatar de daniel61
 
Inscription : décembre 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 109
Points : 120
Points : 120
peut-être

Code :
1
2
 
preg_match('#<\?(?:php)*(?:.(?!\?>))*</body>.*\?>#isU',$html);
daniel61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2007, 18h37   #3
Invité de passage
 
Inscription : février 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 5
Points : 1
Points : 1
Cela fonctionne parfaitement !!!!
Merci infiniement daniel.
symbolyk 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 01h45.


 
 
 
 
Partenaires

Hébergement Web