- preg_replace_callback: documentation ( source)
<?php
$text = 'say hello to @elise and @john';
function replace_at_symbol($matches){
return '<a href="/profile/'.$matches[0].'">'.$matches[0].'</a>';}
$output = preg_replace_callback("/([@][a-zA-Z-0-9]+)/", "replace_at_symbol", $text);
echo $output;
?>