Impossible de détecter une balise avec regex

Imformaniaque Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -  
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Contributeur Dernière intervention   846
 
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