Substituindo link de texto como link com preg_replace
Eu pareço estar tendo um problema substituindo um link de texto com um link para o site postado, ele não está ligando.
O código:
$status_text = preg_replace('#(\A|[^=\]\'"a-zA-Z0-9])(http[s]?://(.+?)/[^()<>\s]+)#i', '\\1<a href="\\2">\\3</a>', $status_text);
echo $status_text;
$status_text
é retirado de um campo MySQL chamadocontents
e contém outro texto, mas eu gostaria apenas de linkar o link.Além dissoEu também gostaria que ele não exibisse o URL completo, apenas o domínio principal.
ATUALIZAÇÃO: Temos duas outras preg_replaces na mesma página, procurando por coisas com + e # na frente delas que apontam para áreas do site, elas atualmente funcionam e não precisam entrar em conflito com o acima:
$status_text = preg_replace("/#([a-z_0-9]+)/i", "<a href=\"http://url.com/hashlink/$1\">$0</a>", $status_text);
$status_text = preg_replace("/\+([a-z_0-9]+)/i", "<a href=\"http://url.com/pluslink/$1\">$0</a>", $status_text);