Merge pull request #4308 from annando/bbcode-url-detection
Issue 4295: The url detection in BBCode is too greedy
This commit is contained in:
commit
cf6005c260
1 changed files with 5 additions and 10 deletions
|
@ -970,12 +970,11 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
|
||||||
// if the HTML is used to generate plain text, then don't do this search, but replace all URL of that kind to text
|
// if the HTML is used to generate plain text, then don't do this search, but replace all URL of that kind to text
|
||||||
if (!$forplaintext) {
|
if (!$forplaintext) {
|
||||||
// Autolink feature (thanks to http://code.seebz.net/p/autolink-php/)
|
// Autolink feature (thanks to http://code.seebz.net/p/autolink-php/)
|
||||||
$autolink_regex = "`([^\]\=\"']|^)(https?\://[^\s<]+[^\s<\.\)])`ism";
|
// Currently disabled, since the function is too greedy
|
||||||
if ($simplehtml != 7) {
|
// $autolink_regex = "`([^\]\=\"']|^)(https?\://[^\s<]+[^\s<\.\)])`ism";
|
||||||
$Text = preg_replace($autolink_regex, '$1<a href="$2" target="_blank">$2</a>', $Text);
|
$autolink_regex = "/([^\]\='".'"'."]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism";
|
||||||
} else {
|
$Text = preg_replace($autolink_regex, '$1[url]$2[/url]', $Text);
|
||||||
$Text = preg_replace($autolink_regex, '$1[url]$2[/url]', $Text);
|
if ($simplehtml == 7) {
|
||||||
|
|
||||||
$Text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism", 'bb_style_url', $Text);
|
$Text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism", 'bb_style_url', $Text);
|
||||||
$Text = preg_replace_callback("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/ism", 'bb_style_url', $Text);
|
$Text = preg_replace_callback("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/ism", 'bb_style_url', $Text);
|
||||||
}
|
}
|
||||||
|
@ -1046,10 +1045,6 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
|
||||||
$expression = "=diaspora://.*?/post/([0-9A-Za-z\-_@.:]{15,254}[0-9A-Za-z])=ism";
|
$expression = "=diaspora://.*?/post/([0-9A-Za-z\-_@.:]{15,254}[0-9A-Za-z])=ism";
|
||||||
$Text = preg_replace($expression, System::baseUrl()."/display/$1", $Text);
|
$Text = preg_replace($expression, System::baseUrl()."/display/$1", $Text);
|
||||||
|
|
||||||
if ($tryoembed) {
|
|
||||||
$Text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism", $tryoembed_callback, $Text);
|
|
||||||
}
|
|
||||||
|
|
||||||
$Text = preg_replace("/([#])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",
|
$Text = preg_replace("/([#])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",
|
||||||
'$1<a href="$2" class="tag" title="$3">$3</a>', $Text);
|
'$1<a href="$2" class="tag" title="$3">$3</a>', $Text);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue