首先,一个请求。在将数据写入数据库之前,请勿执行此操作。而是在向最终用户显示数据之前执行此操作。这将减少所有混乱,并在将来为您提供更大的灵活性。
在网上找到一个示例如下:
$text = preg_replace('@(https?://([-w.]+)+(:d+)?(/([-w/_.]*(?S+)?)?)?)@', '<a href="$1">$1</a>', $text);function auto_link_text($text){ $pattern = '#b(([w-]+://?|www[.])[^s()<>]+(?:([wd]+)|([^[:punct:]s]|/)))#'; $callback = create_function('$matches', ' $url = array_shift($matches); $url_parts = parse_url($url); $text = parse_url($url, PHP_URL_HOST) . parse_url($url, PHP_URL_PATH); $text = preg_replace("/^www./", "", $text); $last = -(strlen(strrchr($text, "/"))) + 1; if ($last < 0) {$text = substr($text, 0, $last) . "…"; } return sprintf('<a rel="nowfollow" href="%s">%s</a>', $url, $text); '); return preg_replace_callback($pattern, $callback, $text);}


