Non va bene, interpretando $replacements[1] avresti un errore. Praticamente tu è come se avessi fatto questo:
Codice PHP:
echo '<br><div><object data="http://www.youtube.com/v/You(\'...\');&hl=it&fs=1&rel=0" type="application/x-shockwave-flash" width="320px" height="245px"><param name="movie" value="http://www.youtube.com/v/You(\'...\');&hl=it&fs=1&rel=0"></object></div>';
In quel modo non ti chiamerebbe You(), dovresti concatenare la chiamata alla funzione con il testo.
Per evitare problemi con le virgolette ti consiglio, se puoi, di far restituire l'html direttamente alla funzione. In questo modo:
Codice PHP:
function You($name){
$v = substr($name,strpos($name,"=")+1);
return '<br><div><object data="http://www.youtube.com/v/'. $v. '&hl=it&fs=1&rel=0" type="application/x-shockwave-flash" width="320px" height="245px"><param name="movie" value="http://www.youtube.com/v/'. $v. '&hl=it&fs=1&rel=0"></object></div>';
}
Di conseguenza in $replacements[1] lasceresti soltanto la chiamata alla funzione:
Codice PHP:
$replacements = array(
'<b>\\1</b>',
'You(\'$1\')',
);
Saluti!