mirror of
https://github.com/phpbb/phpbb.git
synced 2025-03-13 20:28:44 +01:00
Added make_clickable()
git-svn-id: file:///svn/phpbb/trunk@115 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
bf7ec7c8f0
commit
61a067434b
@ -396,7 +396,49 @@ function bbencode_second_pass_code($text, $uid)
|
||||
} // bbencode_second_pass_code()
|
||||
|
||||
|
||||
/**
|
||||
* Rewritten by Nathan Codding - Feb 6, 2001.
|
||||
* - Goes through the given string, and replaces xxxx://yyyy with an HTML <a> tag linking
|
||||
* to that URL
|
||||
* - Goes through the given string, and replaces www.xxxx.yyyy[zzzz] with an HTML <a> tag linking
|
||||
* to http://www.xxxx.yyyy[/zzzz]
|
||||
* - Goes through the given string, and replaces xxxx@yyyy with an HTML mailto: tag linking
|
||||
* to that email address
|
||||
* - Only matches these 2 patterns either after a space, or at the beginning of a line
|
||||
*
|
||||
* Notes: the email one might get annoying - it's easy to make it more restrictive, though.. maybe
|
||||
* have it require something like xxxx@yyyy.zzzz or such. We'll see.
|
||||
*/
|
||||
|
||||
function make_clickable($text)
|
||||
{
|
||||
|
||||
// pad it with a space so we can match things at the start of the 1st line.
|
||||
$ret = " " . $text;
|
||||
|
||||
// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
|
||||
// xxxx can only be alpha characters.
|
||||
// yyyy is anything up to the first space, newline, or comma.
|
||||
$ret = preg_replace("#([\n ])([a-z]+?)://([^, \n\r]+)#i", "\\1<a href=\"\\2://\\3\" target=\"_blank\">\\2://\\3</a>", $ret);
|
||||
|
||||
// matches a "www.xxxx.yyyy[/zzzz]" kinda lazy URL thing
|
||||
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
|
||||
// yyyy contains either alphanum, "-", or "."
|
||||
// zzzz is optional.. will contain everything up to the first space, newline, or comma.
|
||||
// This is slightly restrictive - it's not going to match stuff like "forums.foo.com"
|
||||
// This is to keep it from getting annoying and matching stuff that's not meant to be a link.
|
||||
$ret = preg_replace("#([\n ])www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[^, \n\r]*)?)#i", "\\1<a href=\"http://www.\\2.\\3\\4\" target=\"_blank\">www.\\2.\\3\\4</a>", $ret);
|
||||
|
||||
// matches an email@domain type address at the start of a line, or after a space.
|
||||
// Note: before the @ sign, the only valid characters are the alphanums and "-", "_", or ".".
|
||||
// After the @ sign, we accept anything up to the first space, linebreak, or comma.
|
||||
$ret = preg_replace("#([\n ])([a-z0-9\-_.]+?)@([^, \n\r]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
|
||||
|
||||
// Remove our padding..
|
||||
$ret = substr($ret, 1);
|
||||
|
||||
return($ret);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -159,6 +159,8 @@ for($x = 0; $x < $total_posts; $x++)
|
||||
$message = bbencode_second_pass($message, $bbcode_uid);
|
||||
}
|
||||
|
||||
$message = make_clickable($message);
|
||||
|
||||
$message = str_replace("\n", "<BR>", $message);
|
||||
|
||||
if(!($x % 2))
|
||||
|
Loading…
x
Reference in New Issue
Block a user