Impossible de détecter une balise avec regex

Fermé
Imformaniaque Messages postés 48 Date d'inscription dimanche 29 janvier 2012 Statut Membre Dernière intervention 22 juin 2013 - 29 août 2012 à 11:23
Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 - 29 août 2012 à 13:50
Bonjour,
Je suis actuellement sur un projet de site d'informatique et je dois donc créer une fonction qui colore le code HTML.

Pour commencer en douceur, j'éxécute ce code :

<?php
	function colorHTML($message) {
		$message = htmlspecialchars($message);
		$message = preg_replace('#</?[a-z]+( [a-z]+(^["|\'][a-z]+["|\']$))*(?: /)?>#',
		"<span style='color:blue;'>$0 <span style='color:red;'>$1<span style='color:purple';>$2</span></span></span>", 
		$message);
		
		return $message;
	}
	
	if(isset($_POST['message'])) {
		$message = colorHTML($_POST['message']);
		
		echo $message;
	}
?>

	<form method='post'>
		<input type='text' name='message' />
		<input type='submit' />
	</form>


Normalement, ce code devrait colorer <img src='image.png' alt='' />, mais non.

Pourquoi ? Quels sont mes erreurs ? Merci d'avance pour vos réponse

1 réponse

Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
Modifié par Mihawk le 29/08/2012 à 13:51
Hello,

Je vois un espace dans ta regexp... si tu veux rechercher un espace, il faut mettre \s !

Exemple : pour rechercher "salut toi".

#salut\stoi#

Mihawk
"The Weapon of Choice"
0