Как мне получить замену preg, чтобы работать, когда URL содержит хэштег - PullRequest
0 голосов
/ 14 апреля 2010

Я нашел в сети функцию для превращения URL-адреса в строке в интерактивную ссылку. Тем не менее, когда URL содержит хэштегом, он не работает. например. http://www.bbc.co.uk/radio1/photos/fearnecotton/5759/1#gallery5759

Вот часть соответствующей функции:

$ret = preg_replace(
    "#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#",
    "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>",
    $ret
);

$ret = preg_replace(
    "#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#",
    "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>",
    $ret
);

Есть идеи? спасибо

1 Ответ

0 голосов
/ 15 апреля 2010

Попробуйте это:

<?php

$text = "This is my link:  http://www.bbc.co.uk/radio1/photos/fearnecotton/5759/1#gallery5759";
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\" target=\"_blank\">\\0</a>", $text); 
echo $text; // output: This is my link:  <a href="http://www.bbc.co.uk/radio1/photos/fearnecotton/5759/1#gallery5759" target="_blank">http://www.bbc.co.uk/radio1/photos/fearnecotton/5759/1#gallery5759</a>

?>
...