Bonjour tout le monde !

J'ai un petit problème avec la fonction preg_replace_callback : je n'arrive pas à la faire marcher.

Voiçi une partie de mon script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php 
    function f($matches)
    {
        $txt = $matches[1] . $matches[2];
	$txt = preg_replace('#<FONT COLOR=\#[0-9a-f]{6}>#', '', $txt);
	$txt = str_replace('</FONT>', '', $txt);
	return '<FONT COLOR=#0000ff>' . $txt . '</FONT>';
    }
    $cpp = '// commentaire du fichier "fichier.cpp"';
    $htm = $cpp;
    $htm = preg_replace('#"(.*)"#iU', '<FONT COLOR=#ff0000>$0</FONT>', $htm);
    $htm = preg_replace_callback('#(//)(.+)\n#isU', 'f', $htm);
    echo 'Texte en C++ : ' . $cpp . '<br/>';
    echo 'Coloré pour HTML : ' . $htm;
?>
Il donne ceci :
Texte en C++ : // commentaire du fichier "fichier.cpp"
Coloré pour HTML : // commentaire du fichier "fichier.cpp"

Alors qu'il devrais donner :
Texte en C++ : // commentaire du fichier "fichier.cpp"
Coloré pour HTML : // commentaire du fichier "fichier.cpp"
En fait, c'est la fonction f qui ne s'execute pas !

D'où vient le problème ?

Merci d'avance !