Author: leithoff
New Revision: 55971
URL: http://svn.stylite.de/viewvc/egroupware?rev=55971&view=rev
Log:
handle doublequotes that may enclose URLs
Modified:
trunk/egroupware/api/src/Html.php
— trunk/egroupware/api/src/Html.php (original)
+++ trunk/egroupware/api/src/Html.php Mon May 2 14:09:42 2016
@@ -63,11 +63,30 @@
$Protocol = ‘(http://|(ftp://|https://))’; // only http:// gets removed, other protocolls are shown
$Domain = ‘([\w-]+.[\w-.]+)’;
$Subdir = ‘([\w-.,@?^=%&;:/~+#]*[\w-@?^=%&/~+#])?’;
-
$optStuff = '("|"|;)?';
-
$Expr = '/' . $NotAnchor . $Protocol . $Domain . $Subdir . $optStuff . '/i';
// use preg_replace_callback as we experienced problems with https links
$result3 = preg_replace_callback($Expr, function ($match)
{
-
$additionalQuote="";//at the end, ...
-
// only one " at the end is found. chance is, it is not belonging to the URL
-
if ($match[5]==';' && (strlen($match[4])-6) >=0 && strpos($match[4],'"',strlen($match[4])-6)!==false && strpos(substr($match[4],0,strlen($match[4])-6),'"')===false)
-
{
-
$match[4] = substr($match[4],0,strpos($match[4],'"',strlen($match[4])-6));
-
$additionalQuote = """;
-
}
-
// if there is quoted stuff within the URL then we have at least one more " in match[4], so chance is the last " is matched by the one within
-
if ($match[5]==';' && (strlen($match[4])-6) >=0 && strpos($match[4],'"',strlen($match[4])-6)!==false && strpos(substr($match[4],0,strlen($match[4])-6),'"')!==false)
-
{
-
$match[4] .= $match[5];
-
}
-
if ($match[5]==';'&&$match[4]==""")
-
{
-
$match[4] ='';
-
$additionalQuote = """;
-
}
-
//error_log(__METHOD__.__LINE__.array2string($match));
-
return "<a href=\"".($match[1]&&!$match[2]?$match[1]:'').($match[2]?$match[2]:'').$match[3].$match[4]."\" target=\"_blank\">".$match[3].$match[4]."</a>$additionalQuote";
}, $result2);
// Now match things beginning with www.
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
eGroupWare-cvs mailing list
eGroupWare-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/egroupware-cvs